起動時にx0vncserverが起動しないのはなぜですか?

起動時にx0vncserverが起動しないのはなぜですか?

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つを確認する必要があることです。

  1. あなたのユーザーは次のようになります。自動的にログインするように設定

  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デスクトップセッションの開始時に必要なものです。

関連情報