https://github.com/TigerVNC/tigervnc/blob/master/contrib/systemd/user/vncserver%40.service
Ejemplo:
loginctl enable-linger username
systemctl --user enable vncserver@:1.service
#
# /usr/lib/systemd/user/[email protected]
#
# 1. Switches for vncserver should be entered in ~/.vnc/config rather than
# hard-coded into this unit file. See the vncserver(1) manpage.
#
# 2. Users wishing for the server to continue running after the owner logs
# out MUST enable 'linger' with loginctl like this:
# `loginctl enable-linger username`
#
# 3. The server can be enabled and started like this once configured:
# `systemctl --user start vncserver@:.service`
# `systemctl --user enable vncserver@:.service`
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=default.target