首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建x11vnc系统服务

创建x11vnc系统服务
EN

Unix & Linux用户
提问于 2017-11-03 03:47:03
回答 2查看 34K关注 0票数 2

操作系统: GNU/Linux 9和肉桂DE。

由于我们成功地获得了在Debian服务器上运行的VNC,多亏了GAD3R,现在是时候让VNC成为一个常规服务了。

我希望它在运行时一直运行,从引导开始,而不需要SSH到服务器,同时运行:

代码语言:javascript
复制
x11vnc -rfbauth ~/.vnc/passwd

另外,我不想运行单独的肉桂会话,我想直接查看主屏幕上的内容或您称之为什么,并对该会话进行现场操作。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-11-03 03:47:03

首先,在/etc/下复制密码文件可能是个好主意,如下所示:

代码语言:javascript
复制
sudo cp ~/.vnc/passwd /etc/vnc.passwd

这还确保了对root和他的rw访问的所有权,如下所证实:

代码语言:javascript
复制
$ ll /etc/vnc.passwd

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

其次,我们必须自己创建服务文件:

代码语言:javascript
复制
sudo nano /lib/systemd/system/vnc.service

而我想出的最简单的解决方案是让它包含:

代码语言:javascript
复制
[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

注意,虽然它是目前为止最简单的服务文件,但它甚至不能支持停止或重新启动,我自己还需要解决这个问题。

免责声明:手册页相当长,也许我犯了一些严重的错误,例如这里的安全错误。承担你自己的风险。

代码语言:javascript
复制
sudo systemctl enable vnc.service
sudo systemctl daemon-reload

你可以简单地重新启动机器。

请注意,在客户端,您可能希望从服务器复制密码文件,以便您每次不输入密码,连接,并定义类似于以下的别名:

代码语言:javascript
复制
alias vnc-server='(vncviewer 192.168.0.xxx:5900 -passwd /home/UserName/.vnc/server.passwd > /dev/null 2>&1 &)'

这样它就不会淹没你的终端机。

票数 3
EN

Unix & Linux用户

发布于 2018-10-26 15:23:34

类似于Vlastimil自己的解决方案,但有一些其他细节:(来自带有系统的肉桂VNC服务器)

创建文件/etc/systemd/system/x11vnc.service

代码语言:javascript
复制
[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)

代码语言:javascript
复制
x11vnc -storepasswd MY_PASSWORD /etc/x11vnc.pwd

最后:

代码语言:javascript
复制
systemctl daemon-reload
systemctl enable x11vnc
systemctl start x11vnc
票数 10
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/402201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档