我试图在启动后自动在用户模式下启动 systemd 中的 VNC 服务器。使用 Arch Linux 作为虚拟机运行。
VNC服务器是Tiger VNC:
$ pacman -Qs vnc
local/tigervnc 1.9.0-1
Suite of VNC servers and clients. Based on the VNC 4 branch of TightVNC.
/home/raspi/vnc.service
:
[Unit]
Description=Remote desktop service (VNC)
[Service]
Type=simple
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -alwaysshared -fg -name remote
ExecStop=/usr/bin/vncserver -kill :1
[Install]
WantedBy=default.target
延迟已启用:
$ loginctl show-user raspi | grep -i linger
Linger=yes
安装有:
$ systemctl --user enable /home/raspi/vnc.service
Created symlink /home/raspi/.config/systemd/user/default.target.wants/vnc.service → /home/raspi/vnc.service.
Created symlink /home/raspi/.config/systemd/user/vnc.service → /home/raspi/vnc.service.
开始于:
$ systemctl --user start vnc.service
我可以启动它并连接到它,但它不会在系统启动时自动启动。我必须登录并systemctl --user start vnc.service
手动运行。我缺少什么?
答案1
您缺少每用户服务管理本身并不在引导程序中启动在默认配置中。它在您第一次登录时启动,这是服务管理器挂钩到登录系统的结果。