以下是在Ubuntu上实现VNC自动化脚本的关键步骤,涵盖服务配置、脚本编写及自动化启动等内容:
安装VNC服务器
以TightVNC为例,执行命令:
sudo apt update && sudo apt install tightvncserver
首次运行时设置VNC密码(用于远程连接认证)。
配置桌面环境
编辑~/.vnc/xstartup
文件,指定启动的桌面环境(如GNOME/Xfce):
#!/bin/sh
export XDG_CURRENT_DESKTOP="GNOME"
exec /usr/bin/gnome-session &
保存后赋予执行权限:
chmod +x ~/.vnc/xstartup
创建/usr/local/bin/vnc_control.sh
,内容如下:
#!/bin/bash
# 参数:start|stop|restart
ACTION=$1
USER="your_username"
DISPLAY_NUM="1"
case $ACTION in
start)
sudo -u $USER vncserver :$DISPLAY_NUM -geometry 1920x1080 -depth 24
;;
stop)
sudo -u $USER vncserver -kill :$DISPLAY_NUM
;;
restart)
sudo -u $USER vncserver -kill :$DISPLAY_NUM
sudo -u $USER vncserver :$DISPLAY_NUM -geometry 1920x1080 -depth 24
;;
esac
赋予执行权限:
chmod +x /usr/local/bin/vnc_control.sh
创建服务文件/etc/systemd/system/vncserver.service
:
[Unit]
Description=VNC Server Service
After=network.target
[Service]
Type=forking
User=your_username
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable vncserver.service
sudo systemctl start vncserver.service
通过脚本传递参数(如分辨率、端口):
#!/bin/bash
# 示例:动态设置分辨率和端口
RESOLUTION=${1:-"1920x1080"}
PORT=${2:-"5901"}
vncserver :1 -geometry $RESOLUTION -rfbport $PORT
调用方式:
./vnc_control.sh start 1280x720 5902
使用cron
定时执行VNC操作(如定时重启服务):
# 编辑当前用户的cron任务
crontab -e
# 添加以下内容(每天凌晨3点重启VNC)
0 3 * * * /usr/local/bin/vnc_control.sh restart
stunnel
工具)。vncpasswd
单独设置密码)。>> /var/log/vnc.log 2>&1
),便于排查问题。通过以上步骤,可实现Ubuntu VNC的自动化启停、配置及集成到系统服务,满足远程运维、批量部署等场景需求。