Wikiを使用して自動GUIログイン設定で放物線アーチGnu / Linuxでightvncserverを起動しようとしています。https://wiki.archlinux.org/index.php/TigerVNC#Using_tigervnc.27s_x0vncserverx0vncserver.service systemd デバイスを作成し、systemctl enable x0vncserver.service
起動/再起動すると、アクティブな vnc サーバーが表示されず、次のものが表示されることを確認します。
#systemctl 状態 x0vncserver.service *x0vncserver.service - リモートデスクトップサービス(VNC) ロード済み:ロード済み(/etc/systemd/system/x0vncserver.service;有効、ベンダーデフォルト:無効) アクティブ:2017-07-01 20:42:55 +06 1分34秒前から非アクティブ(死)。 プロセス: 302 ExecStart=/usr/bin/sh -c /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/peruvian/.vnc/passwd & (コード=終了、ステータス=0/SUCCESS) Jul 01 20:42:52 sky systemd[1]: リモート デスクトップ サービス (VNC) を開始中... Jul 01 20:42:55 sky systemd[1]: リモートデスクトップサービス (VNC) を起動します。
そして私
#journalctl-xe| - トピック:x0vncserver.serviceデバイスが起動を開始しました。 - デバイスx0vncserver.serviceが起動し始めました。 - トピック:x0vncserver.serviceデバイスの起動が完了しました。 - x0vncserver.serviceデバイスの起動が完了しました。 7月1日 20:47:08 sky systemd[1]: x0vncserver.service: 基本プロセスが終了しました、コード=終了、ステータス=1/FAILURE Jul 01 20:47:08 sky systemd[1]: x0vncserver.service: デバイスが障害状態に移行しました。 7月1日 20:47:08 sky systemd[1]: x0vncserver.service: '終了コード'のため失敗しました。
ただし、コマンドを実行したりsystemctl start x0vncserver.service
デスクトップsystemctl restart x0vncserver.service
をロードしたりすると、以下のよう# systemctl status x0vncserver.service
に正常に動作します。
#systemctl 状態 x0vncserver.service *x0vncserver.service - リモートデスクトップサービス(VNC) ロード済み:ロード済み(/etc/systemd/system/x0vncserver.service;有効、ベンダーデフォルト:無効) アクティブ:2017-07-01 20:56:53 +06 Saturday以降アクティブ(実行中)。 プロセス: 924 ExecStart=/usr/bin/sh -c /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/peruvian/.vnc/passwd & (コード=終了、ステータス=0/SUCCESS) マスターPID:925(x0vncserver) ミッション:1(制限:4915) Cグループ:/system.slice/x0vncserver.service `-925 /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/peruvian/.vnc/passwd Jul 01 20:56:53 sky systemd[1]: リモート デスクトップ サービス (VNC) を開始中... Jul 01 20:56:53 sky systemd[1]: リモートデスクトップサービス(VNC)を起動します。
私のdefault.targetは
# systemctl デフォルト値の取得 グラフィックターゲット
サービスが予想より早く開始され、起動時にリソース不足が原因で失敗するようです。
答え1
少し遅れましたが、私もこの質問を偶然見つけました。
問題は、x0vncserverでユーザーがXセッションにログインする必要があるため、次の2つを確認する必要があることです。
あなたのユーザーは次のようになります。自動的にログインするように設定
ExecStart
サービスが起動しようとする前にデスクトップが起動しx0vncserver
てログインできるように、コマンドでスリープモードを設定します。ExecStart=/usr/bin/sh -c 'sleep 3 && /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/<ユーザー名>/.vnc/passwd & '
睡眠は私にとって大きな助けになり、今私のx0vnc
仕事が始まります。
答え2
xsessionの後にのみx0vncserver
起動され、私の環境はLXDE環境なので、より簡単な方法はscript.sh
次のファイルを作成することです。
#!/bin/bash
x0vncserver -display :0 -rfbport 5900 -passwordfile ~/.vnc/passwd
実行可能にし、以下のようにsudo chmod +x script.sh
ファイルに1行を追加します。~/.config/lxsession/LXDE/autostart
path_to_the_script_file/script.sh
x0vncserver
これは、LXDEデスクトップセッションの開始時に必要なものです。