我正在尝试配置 TigerVNC 服务器以在Ubuntu GNOME 16.04.3。我安装了最新版本(1.8) 的TigerVNC使用这个帖子. 如果我使用以下命令启动服务器:
vncserver :4 -geometry 1920x1080 -depth 24 -nolisten tcp -localhost
它运行完美。我可以连接到显示 4通过 SSH,可以完全访问我的计算机,而无需解锁实验室中的真实(物理)显示器。此外,我可以调整几何形状以匹配我的笔记本电脑的显示器,因此一切都很完美。
然后我尝试使用 让服务器在启动时启动systemd
,我发现这个帖子来帮助我。但是,我正在运行 GNOME 桌面,博客中的设置适用于 Unity。我的机器上没有安装 Unity,我更愿意避免使用它。
我该如何修改该帖子中的第 7 步和第 8 步以使用 GNOME 桌面而不是 Unity?我知道如果跳过它们则不起作用,因为当我远程连接时只会出现黑屏。
事实上,如果有另一种方法可以确保vncserver
在启动时启动,那么这也将被接受为答案。TigerVNC 确实安装了一个名为的脚本vncserver
,/etc/init.d/
但我无法使用update-rc.d
答案1
该systemd
单元文件对我有用:
[Unit]
Description=Start TigerVNC Server at startup
After=syslog.target network.target
[Service]
Type=forking
User=user
PAMName=login
PIDFile=/home/user/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
确保将和下方user
对应的行替换为您的实际用户名。User
PIDFile
[Service]
[email protected]
我保存了这个文件/etc/systemd/system/
- 启用它,它会创建一个指向的符号链接文件
systemctl enable [email protected]
[email protected]
/etc/systemd/system/multi-user.target.wants/
[email protected]
/etc/systemd/system/
- 使用以下方式启动服务
systemctl start vncserver@4
为了满足您的需求,请使用您首选的展示数字而不是4(就像我所做的那样)在启用时。此外,请确保在启动服务之前已在此服务单元文件之外初始化 vncserver。这将确保创建密码和必要的文件(等)。最简单的方法是针对单元文件中的xstartup
运行命令。就我而言,这意味着:ExecStart
[Service]
vncserver :4 -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
资料来源:我改编了 Unit 文件本指南。