システム全体の自動起動ファイルを作成するにはどうすればよいですか?これは、デスクトップバージョンのMaverickを実行しているクラウドサーバー上にあります。
ルートとしてログインし、System/Preferences/StartupApplications
を使用して自動起動ファイルを作成しましたが、最終的に/root/.config/autostart
になり、再起動時に実行されませんでした(わかる限り)。自動起動ファイルは、VNCサーバーを呼び出すbashスクリプトを呼び出すためのものです。
.desktop自動起動ファイルを/root/.config/autostart
から/etc/xdg/autostart
にコピーして再起動しました。これは違いをもたらさないようでした。
編集コメントで述べたように、目的はブート時にVNCサーバーを起動するbashスクリプトを実行することです。ログイン時ではありません。
まず、TightVNCサーバーSudo apt-get install tightvncserver
をインストールします。
ログインするユーザーのVNCサーバーを設定します。初めて「vncserver」を実行すると、パスワードの設定を求められます。 SSHトンネル接続またはVPN接続のみを許可します。 VNCセッションの開始時にプログラムまたはセッションを起動するには、~/.vnc/xstartup
を変更します。以下に例を示します。
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid black
/opt/azureus/azureus &
k3b &
icewm-session &
以下を/etc/init.d/vncserver
にコピーします。最も簡単な方法は、クリップボードにコピーし、ターミナルでSudo -i && cat > /etc/init.d/vncserver && exit
を実行して貼り付け、CTRL-Dと入力することです。必ずUSER変数を、VNCサーバーを実行するユーザーに変更してください。
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: networking
# Default-Start: 3 4 5
# Default-Stop: 0 6
### END INIT INFO
PATH="$PATH:/usr/X11R6/bin/"
# The Username:Group that will run VNC
export USER="mythtv"
#${RUNAS}
# The display that VNC will use
DISPLAY="1"
# Color depth (between 8 and 32)
DEPTH="16"
# The Desktop geometry to use.
#GEOMETRY="<WIDTH>x<HEIGHT>"
#GEOMETRY="800x600"
GEOMETRY="1024x768"
#GEOMETRY="1280x1024"
# The name that the VNC Desktop will have.
NAME="my-vnc-server"
OPTIONS="-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;
stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
Sudo chmod +x /etc/init.d/vncserver
を使用してスクリプトを実行可能にします。
1つの可能性:/etc/rc.local
コンテンツはそれを言う:
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing
私のシステムでは、実行ビットはすでに755に設定されています。 (chmod 755 /etc/rc.local)
そこに任意のコマンドを入れることができ、それらはルートとして実行されます。
ランレベルを変更しない限り、これはあなたの目的には問題ありません。 (ランレベルが何であるかわからない場合は、気にしないでください)。
これは古い投稿のようですが、一部のユーザーにとってはこのトピックはまだ興味深いかもしれません。起動時にvncを起動するには、以下が必要です。
ステップ1-x11vncサーバーのインストール
コマンドラインから次のように入力します
Sudo apt-get install x11vnc
セキュリティを追加するには、pwdを設定する必要があります
Sudo x11vnc -storepasswd
ステップ2-起動スクリプトを構成する
/etc/init.d/x11vnc.conf
の下に設定ファイルを作成し、実行する正しいコマンドを設定します
start on login-session-start
script
/usr/bin/x11vnc -xkb -auth
/var/run/lightdm/root/:0
-noxrecord -noxfixes -noxdamage
-rfbauth /etc/x11vnc.pass
-forever -bg -rfbport 5900 -o /var/log/x11vnc.log
end script
これらのシステムはsystemdを使用しているため、/lib/systemd/system/x11vnc.service
の下にサービスユニットファイルを作成し、実行する正しいコマンドを入力する必要があります。
[Unit] Description=Start x11vnc at startup. After=multi-user.target
[Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever
-loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared
[Install] WantedBy=multi-user.target
サービスをリロードする
Sudo systemctl daemon-reload
Sudo systemctl enable x11vnc.service
Ubuntu CommunityのヘルプWikiページで詳細情報を見つけることができます( here を参照してください)。
これがお役に立てば幸いです
TigerVNCを使用している場合、/etc/init.d/vncserver
がインストールされ、/etc/sysconfig/vncservers
で設定されたすべてのvncserverが起動します。以下は、起動時にディスプレイ1と2で2つのインスタンスを起動します。
# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"
VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"
以下の行をcrontabファイルに追加します。これは、キーワード@reboot
の後のコマンドが再起動中に実行されることを意味します。
@reboot /usr/bin/vncserver :1
Crontabファイルを開くには、crontab -e
コマンドを使用する必要があります
「sudo update-rc.d vncserver defaults」は、欠落していることを報告しました。 「Required-Stop:」(空であっても)。以下のように追加しました。そしてこれ以上の警告はありません。
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: networking
# Required-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 6
### END INIT INFO
起動時にcronを起動させることができます。 Thingを実行するタイミングを指定するために通常使用する番号の代わりに、文字列「@reboot」を使用します。
たとえば、他の方法では自動的に起動しないマシンでDropboxを起動する方法は次のとおりです。
# m h dom mon dow command
@reboot /usr/bin/dropbox start