From a1fa2396f2c1570cea9e83909e6db4c4e0f2700d Mon Sep 17 00:00:00 2001 From: cnbugs <717192502@qq.com> Date: Mon, 3 Aug 2026 14:00:52 +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 | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/vnc/create_vnc_autostarrt.sh b/vnc/create_vnc_autostarrt.sh index 3408f16..a13967e 100644 --- a/vnc/create_vnc_autostarrt.sh +++ b/vnc/create_vnc_autostarrt.sh @@ -81,6 +81,7 @@ while IFS=':' read -r username password; do #[Install] #WantedBy=multi-user.target # 写入专属的 systemd 服务配置 + # 写入专属的 systemd 服务配置 cat < "$SERVICE_FILE" [Unit] Description=Remote desktop service (VNC) @@ -88,16 +89,20 @@ After=syslog.target network.target [Service] Type=forking - -# Clean any existing files in /tmp/.X11-unix environment +# 核心修复点 1:除了常规 kill,强制移除残留的 X 锁文件和套接字 ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :$DISPLAY_NUM > /dev/null 2>&1 || :' +ExecStartPre=/bin/sh -c 'rm -f /tmp/.X11-unix/X$DISPLAY_NUM /tmp/.X$DISPLAY_NUM-lock' + ExecStart=/usr/sbin/runuser -l $username -c "/usr/bin/vncserver :$DISPLAY_NUM" -PIDFile=/home/$username/.vnc/%H$DISPLAY_NUM.pid + +# 核心修复点 2:修复 PIDFile 路径拼接(通常格式是 hostname:display.pid) +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 -EOF +EOF # 步骤 D: 启用并启动服务 # 重新加载 systemd 守护进程以识别新文件