我尝试使用 wiki 在自动 GUI 登录设置中使ightvncserver 在抛物线拱门 Gnu/Linux 上启动时启动https://wiki.archlinux.org/index.php/TigerVNC#Using_tigervnc.27s_x0vncserver并通过创建 x0vncserver.service systemd 单元,然后systemctl enable x0vncserver.service
但是当我启动/重新启动时,我看到没有 vnc 服务器处于活动状态,然后检查我看到这个
# systemctl status 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 & (code=exited, status=0/SUCCESS) Jul 01 20:42:52 sky systemd[1]:正在启动远程桌面服务(VNC)... Jul 01 20:42:55 sky systemd[1]:启动远程桌面服务(VNC)。
和我的
#journalctl-xe| grep vnc -- 主题:单元 x0vncserver.service 已开始启动 -- 单元 x0vncserver.service 已开始启动。 -- 主题:单元 x0vncserver.service 已完成启动 -- 单元 x0vncserver.service 已完成启动。 Jul 01 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 status x0vncserver.service * x0vncserver.service - 远程桌面服务(VNC) 已加载:已加载(/etc/systemd/system/x0vncserver.service;启用;供应商预设:禁用) 活跃:自 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 获取默认值 图形目标
我猜该服务比预期更早启动,并且由于启动时缺乏资源而失败。
答案1
有点晚了,但我也偶然发现了这个问题。
问题是,x0vncserver 需要您的用户登录 X 会话,因此您必须确保两件事:
您的用户必须是配置为自动登录
在命令中设置睡眠
ExecStart
,以便桌面可以在x0vncserver
服务尝试启动之前启动并登录:ExecStart=/usr/bin/sh -c 'sleep 3 && /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/<您的用户名>/.vnc/passwd &'
睡眠对我起了作用,现在我的x0vnc
工作开始了。
答案2
由于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
当x0vncserver
我的 LXDE 桌面会话启动时,这就是我所需要的。