web-dev-qa-db-ja.com

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

Wikiを使用した自動GUIログインセットアップでparabolaArch Gnu/Linuxの起動時にtightvncserverを起動しようとしました https://wiki.archlinux.org/index.php/TigerVNC#Using_tigervnc.27s_x0vncserver その後にx0vncserver.servicesystemdユニットを作成してからsystemctl enable x0vncserver.serviceを作成しますが、起動/再起動すると、アクティブなvncサーバーが表示されないので、これを確認します。

#systemctl status x0vncserver.service 
 * x0vncserver.service-リモートデスクトップサービス(VNC)
ロード済み:ロード済み(/etc/systemd/system/x0vncserver.service; enabled; vendorプリセット:無効)
アクティブ:非アクティブ(デッド)2017-07-01 Sat 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&(code = exited 、status = 0/SUCCESS)
 
 Jul 01 20:42:52 sky systemd [1]:リモートデスクトップサービス(VNC)を開始しています... 
 Jul01 20:42 :55 sky systemd [1]:リモートデスクトップサービス(VNC)を開始しました。

と私

#journalctl -xe | grep vnc 
-サブジェクト:ユニットx0vncserver.serviceが起動を開始しました
-ユニットx0vncserver.serviceが起動を開始しました。
-件名:ユニットx0vncserver.serviceが起動しました起動が完了しました
-ユニットx0vncserver.serviceの起動が終了しました。
 Jul01 20:47:08 sky systemd [1]:x0vncserver.service:メインプロセスが終了しました、code = exited、 status = 1/FAILURE 
 Jul 01 20:47:08スカイsystemd [1]:x0vncserver.service:ユニットが障害状態になりました。
 Jul 01 20:47:08スカイsystemd [1]: x0vncserver.service:結果 'exit-code'で失敗しました。

しかし、デスクトップをロードした後にコマンドsystemctl start x0vncserver.serviceまたはsystemctl restart x0vncserver.serviceを実行すると、# systemctl status x0vncserver.serviceshowsのように問題なく動作します。

#systemctl status x0vncserver.service 
 * x0vncserver.service-リモートデスクトップサービス(VNC)
ロード済み:ロード済み(/etc/systemd/system/x0vncserver.service; enabled; vendorプリセット:無効)
アクティブ:アクティブ(実行中)2017-07-01 Sat 2017-07-01 20:56:53 +06; 2秒前
プロセス:924 ExecStart =/usr/bin/sh -c/usr/bin/x0vncserver -display:0 -rfbport 5900 -passwordfile /home/peruvian/.vnc/passwd&(code = exited、 status = 0/SUCCESS)
メインPID:925(x0vncserver)
タスク:1(制限:4915)
 CGroup:/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 get-default 
 graphical.target 

サービスが想定よりも早く開始し、起動時のリソース不足のために失敗すると思います。

2
Pavel Sayekat

少し遅れましたが、私もこの問題に遭遇しました。

問題は、x0vncserverがユーザーのログインXセッションを必要とするため、次の2つのことを確認する必要があることです。

  1. ユーザーは 自動ログイン用に構成する必要があります
  2. X0vncserverサービスが開始しようとする前にデスクトップが開始してログインできるように、ExecStartコマンドをスリープ状態にします。

    ExecStart=/usr/bin/sh -c 'sleep 3 && /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/peruvian/.vnc/passwd &'
    

睡眠は私のためにトリックをしました、そして今私のx0vncは働いています。

3

x0vncserverはxsessionの後にのみ開始され、私のものはLXDE環境であるため、次のようなscript.shファイルを作成する方が簡単です。

#!/bin/bash
x0vncserver -display :0 -rfbport 5900 -passwordfile ~/.vnc/passwd

Sudo chmod +x script.shで実行可能にし、次のように~/.config/lxsession/LXDE/autostartファイルに行を追加します

path_to_the_script_file/script.sh

lXDEデスクトップセッションが開始するとx0vncserverが開始し、それが必要です。

3
Pavel Sayekat