web-dev-qa-db-ja.com

x11vncシステムサービスの作成

OS:Cinnamon DEを備えたGNU/Linux Debian 9。

GAD3R のおかげで Debianサーバー上のVNCが実行中 を取得できたので、VNCを通常のサービスにする時が来ました。

起動してから、サーバーにSSHで接続する必要なく、常に実行したいです。

x11vnc -rfbauth ~/.vnc/passwd

また、別のCinnamonセッションを実行したくありません。プライマリ画面や何と呼んでいるものを直接確認し、そのセッションをライブで操作したいと思います。

1

まず、パスワードファイルを/etc/の下にコピーすることをお勧めします。

Sudo cp ~/.vnc/passwd /etc/vnc.passwd

これにより、rootへの所有権とrwアクセス権も確認されます。

$ ll /etc/vnc.passwd

-rw------- 1 root root 8 Nov  3 04:00 /etc/vnc.passwd

次に、サービスファイルを自分で作成する必要があります。

Sudo nano /lib/systemd/system/vnc.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 /etc/vnc.passwd -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

これは非常に単純なサービスファイルですが、停止または再起動をサポートすることさえできないことに注意してください。私自身もこれを理解する必要があります。

免責事項: man page は非常に長く、多分私はいくつかの深刻なことをしました。ここでセキュリティの間違い。自己責任でご使用ください。

Sudo systemctl enable vnc.service
Sudo systemctl daemon-reload

マシンを再起動するだけです。


補足として、クライアント側では、毎回パスワードを入力しないようにサーバーからパスワードファイルをコピーし、接続して、次のようなエイリアスを定義することができます。

alias vnc-server='(vncviewer 192.168.0.xxx:5900 -passwd /home/UserName/.vnc/server.passwd > /dev/null 2>&1 &)'

それはあなたのターミナルをあふれさせないように。

2

Vlastimilの独自のソリューションに似ていますが、その他の詳細がいくつかあります(from systemdを使用したCinnamonのVNCサーバー

ファイルを作成する/etc/systemd/system/x11vnc.service

[Unit]
Description=VNC Server for X11
Requires=display-manager.service
After=syslog.target network-online.target ##optional for better performance
Wants=syslog.target network-online.target ##optional for better performance

[Service]
ExecStart=/usr/bin/x11vnc -display :0 -rfbauth /etc/x11vnc.pwd -shared -forever -o /var/log/x11vnc.log
ExecStop=/usr/bin/x11vnc -R stop
Restart=on-failure
RestartSec=2

[Install]
WantedBy=multi-user.target

VNCパスワードの生成と設定(MY_PASSWORDを置き換え)

x11vnc -storepasswd MY_PASSWORD /etc/x11vnc.pwd

最後に:

systemctl daemon-reload
systemctl enable x11vnc
systemctl start x11vnc
7
mivk