起動時にVNCサーバーを起動するにはどうすればよいですか?


29

システム全体の自動起動ファイルを作成するにはどうすればよいですか?これは、デスクトップバージョンのMaverickを実行しているクラウドサーバー上にあります。

ルートとしてログインし、を使用して自動起動ファイルを作成しましたSystem/Preferences/StartupApplications/root/.config/autostart、再起動時に終了し、実行できませんでした(わかる限り)。自動起動ファイルは、VNCサーバーを呼び出すbashスクリプトを呼び出すためのものです。

.desktop autostartファイルをからコピー/root/.config/autostart/etc/xdg/autostartて再起動しました。これは違いをもたらさないようでした。

編集コメントで述べたように、目的は、起動時にVNCサーバーを起動するbashスクリプトを実行することです。ログイン時ではありません。


ブート時の自動起動または誰か(誰か)がログオンしたときの自動起動を意味しますか?
fossfreedom

VNCサーバーをブート時に自動起動させたい。
H2ONaCl

1
SU SEで答えを見つけたsuperuser.com/questions/147109/…試してみてください
-wisemonkey

VNCの実行にディスプレイは必要ありませんか?
デスグア

回答:


19
  1. まず、TightVNCサーバーをインストールします sudo apt-get install tightvncserver

  2. ログインするユーザーのVNCサーバーを設定します。初めて「vncserver」を実行すると、パスワードの設定を求められます。SSHトンネル接続またはVPN接続のみを許可します。VNCセッションの開始時にプログラムまたはセッションを起動するには、を変更し~/.vnc/xstartupます。以下に例を示します。

    #!/bin/sh
    
    xrdb $HOME/.Xresources
    xsetroot -solid black
    /opt/azureus/azureus &
    k3b &
    icewm-session &
    
  3. 以下をにコピーします/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
    
  4. でスクリプトを実行可能にしsudo chmod +x /etc/init.d/vncserverます。

  5. 最後に、ポート590XでVNCクライアントを使用してサーバーに接続します。Xはvncserverスクリプトの「DISPLAY」の値です。OS Xでは、VNCのChickenを使用します。WindowsおよびLinuxでは、TightVNCクライアントはうまく機能します。

ソース


このsuperuser.com/questions/147109/... wisemonkeyからはstackexchange同等の答えです。できます。X11へのパスを調整する必要がある場合があることに注意してください。
H2ONaCl

TigerVNCがインストールさ/etc/init.d/vncserverれ、すべてのvncserverが起動します/etc/sysconfig/vncservers
Kashyap 14

5
これはabdevelopment.ca/blog/start-vnc-server-ubuntu-bootからコピーアンドペーストされましたが最も重要なステップを残しましたsudo update-rc.d vncserver defaults
ハイファン

3

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)

そこに任意のコマンドを入れることができ、それらはルートとして実行されます。

ランレベルを変更しない限り、これはあなたの目的には問題ありません。(ランレベルが何であるかわからない場合は、気にしないでください)。


2
この提案はうまくいきませんでした。
-H2ONaCl

これらの2つの調整が役立つ場合があります。
シーズティマーマン

@CeesTimmerman、ありがとうございますが、これらの2つの調整は機能しませんでした。
H2ONaCl

2

TigerVNCを使用している場合、インストールする/etc/init.d/vncserverと、/etc/sysconfig/vncservers たとえば次のように構成されたすべてのvncservers が起動し、起動時にディスプレイ1と2で2つのインスタンスが起動します。

# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"

VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"

2

これは古い投稿のようですが、このトピックは一部のユーザーにとってはまだ興味深いかもしれません。起動時にvncを起動するには、以下が必要です。

  1. vncサーバーソフトウェアをインストールします(ここではx11vncを使用します)
  2. スタートアップスクリプトの構成(vncサービスの開始に使用)

ステップ1-x11vncサーバーのインストール

コマンドラインから次のように入力します

 sudo apt-get install x11vnc

セキュリティを追加するには、pwdを設定する必要があります

sudo x11vnc -storepasswd

ステップ2-起動スクリプトを構成する

  • あなたのubuntuバージョンが15.04より低い場合、

構成ファイルを作成します /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
  • Ubuntuのバージョンが15.04以降の場合、

これらのシステムは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ページ(こちらをご覧ください)をご覧ください。)でまたは、このクイックを使用してレシピを使用することもできます。

  • 15.04より前の Ubuntuバージョンの場合、チェックこの投稿を
  • Ubuntuバージョン15.04以降の場合、この投稿を確認してください

これがお役に立てば幸いです


1

以下の行をcrontabファイルに追加します。これは、@reboot再起動中にキーワードが実行された後のコマンドを意味します。

@reboot /usr/bin/vncserver :1

crontabファイルを開くには、コマンドを使用する必要があります crontab -e


この6歳の回答と同じ:askubuntu.com/a/124079/158442
muru

0

起動時にcronを起動させることができます。Thingを実行するタイミングを指定するために通常使用する数字の代わりに、文字列「@reboot」を使用します。

たとえば、他の方法では自動的に起動しないマシンでDropboxを起動する方法は次のとおりです。

# m h  dom mon dow   command
@reboot         /usr/bin/dropbox start

このページは、システムが実際に再起動する場合(コールドブートではない場合)にのみ機能すると述べています。
シーズティマーマン

0

「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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.