From c9af5c61aad36eafe8af4708c478845199701b57 Mon Sep 17 00:00:00 2001 From: cnbugs <717192502@qq.com> Date: Mon, 29 Jun 2026 11:03:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20vnc/create=5Fvnc=5Fautosta?= =?UTF-8?q?rrt.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnc/create_vnc_autostarrt.sh | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/vnc/create_vnc_autostarrt.sh b/vnc/create_vnc_autostarrt.sh index 2963924..3408f16 100644 --- a/vnc/create_vnc_autostarrt.sh +++ b/vnc/create_vnc_autostarrt.sh @@ -62,22 +62,38 @@ while IFS=':' read -r username password; do SERVICE_FILE="/etc/systemd/system/vnc-${username}.service" - # 写入专属的 systemd 服务配置 + +#[Unit] +#Description=VNC Server for $username on display $DISPLAY_NUM +#After=syslog.target network.target + +#[Service] +#Type=forking +#User=$username +#Group=$username +#WorkingDirectory=/home/$username +# 启动前清理可能残留的锁文件 +#ExecStartPre=-/usr/bin/vncserver -kill :$DISPLAY_NUM > /dev/null 2>&1 +# 启动 VNC 服务 (可根据需要调整分辨率 -geometry) +#ExecStart=/usr/bin/vncserver :$DISPLAY_NUM -geometry 1280x720 -depth 24 +#ExecStop=/usr/bin/vncserver -kill :$DISPLAY_NUM + +#[Install] +#WantedBy=multi-user.target +# 写入专属的 systemd 服务配置 cat < "$SERVICE_FILE" [Unit] -Description=VNC Server for $username on display $DISPLAY_NUM +Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking -User=$username -Group=$username -WorkingDirectory=/home/$username -# 启动前清理可能残留的锁文件 -ExecStartPre=-/usr/bin/vncserver -kill :$DISPLAY_NUM > /dev/null 2>&1 -# 启动 VNC 服务 (可根据需要调整分辨率 -geometry) -ExecStart=/usr/bin/vncserver :$DISPLAY_NUM -geometry 1280x720 -depth 24 -ExecStop=/usr/bin/vncserver -kill :$DISPLAY_NUM + +# Clean any existing files in /tmp/.X11-unix environment +ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :$DISPLAY_NUM > /dev/null 2>&1 || :' +ExecStart=/usr/sbin/runuser -l $username -c "/usr/bin/vncserver :$DISPLAY_NUM" +PIDFile=/home/$username/.vnc/%H$DISPLAY_NUM.pid +ExecStop=/bin/sh -c '/usr/bin/vncserver -kill :$DISPLAY_NUM > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target