更新 vnc/create_vnc_autostarrt.sh

This commit is contained in:
2026-08-03 14:00:52 +08:00
parent 4555c9b26a
commit a1fa2396f2
+9 -4
View File
@@ -81,6 +81,7 @@ while IFS=':' read -r username password; do
#[Install] #[Install]
#WantedBy=multi-user.target #WantedBy=multi-user.target
# 写入专属的 systemd 服务配置 # 写入专属的 systemd 服务配置
# 写入专属的 systemd 服务配置
cat <<EOF > "$SERVICE_FILE" cat <<EOF > "$SERVICE_FILE"
[Unit] [Unit]
Description=Remote desktop service (VNC) Description=Remote desktop service (VNC)
@@ -88,16 +89,20 @@ After=syslog.target network.target
[Service] [Service]
Type=forking Type=forking
# 核心修复点 1:除了常规 kill,强制移除残留的 X 锁文件和套接字
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :$DISPLAY_NUM > /dev/null 2>&1 || :' 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" 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 || :' ExecStop=/bin/sh -c '/usr/bin/vncserver -kill :$DISPLAY_NUM > /dev/null 2>&1 || :'
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
# 步骤 D: 启用并启动服务 # 步骤 D: 启用并启动服务
# 重新加载 systemd 守护进程以识别新文件 # 重新加载 systemd 守护进程以识别新文件