ubuntu 20.04 基于root用户的vnc开机自动启动

文章描述了如何在Ubuntu20.04上,以root用户身份设置TigerVNC服务器的自启动脚本vncserver_start。通过编辑初始化脚本,指定用户,设置启动和停止命令,然后给予脚本执行权限,更新系统服务并重载daemon,最后重启机器以检查服务是否成功启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:ubuntu20.04  

root 用户

我安装的tigervnc

创建vncserver_start 

vim /etc/init.d/vncserver_start 
#!/bin/sh
### BEGIN INIT INFO
# Provides:          $vncserver_start
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop vncserver_start
### END INIT INFO

# More details see:
# http://www.penguintutor.com/linux/tightvnc

### Customize this entry
# Set the USER variable to the name of the user to start tightvncserver under
export USER='root'
### End customization required

eval cd ~$USER

case "$1" in
    start)
         su $USER -c '/usr/bin/vncserver'
         echo "Starting VNC server for $USER "
         ;;
    stop)
 
         su $USER -c '/usr/bin/vncserver -kill :1'
         echo "vncserver stopped"
         ;;
    *)
         echo "Usage: /etc/init.d/vncserver {start|stop}"
         exit 1
         ;;
esac
exit 0

根据自己的情况在  代码start  下的  '/usr/bin/vncserver'

修改成自己需要执行的代码

给文件加权限

chmod 777 /etc/init.d/vncserver_start
update-rc.d vncserver_start defaults

重载下systemctl服务

systemctl daemon-reload

reboot重启下机器

查看是否成功

systemctl status vncserver_start.service 

 我也不清楚是不是需要运行下面的命令,因为之前写过一个同名的service服务,如果上述不行的话可以尝试下

 在重载服务后面执行

systemctl enable vncserver_start.service
systemctl start vncserver_start.service 

可以用作参考,root用户自启动之前捣鼓了很久都不行,碰巧实现了,总结下经验。

### 如何在 Ubuntu 20.04 上安装和配置 x11vnc #### 安装必要的桌面环境 为了使远程连接更加友好,在服务器上可以先安装一个轻量级的桌面环境,比如 XFCE: ```bash sudo apt update && sudo apt upgrade -y sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils -y ``` 上述命令更新了软件包列表并升级已有的软件包到最新版本;接着安装了XFCE桌面环境及其附加组件、X.Org显示服务器以及D-Bus系统消息总线工具等必要依赖项[^1]。 #### 安装 x11vnc 接下来需要安装 `x11vnc` 工具来实现VNC服务的功能: ```bash sudo apt-get install x11vnc -y ``` 这条指令通过APT包管理器获取并安装了x11vnc程序[^2]。 #### 配置 x11vnc 创建一个新的VNC密码文件用于身份验证: ```bash x11vnc -storepasswd /root/.vnc/passwd ``` 此操作将会提示输入两次作为访问控制使用的密码,并将其保存至指定路径下。 编辑 `/etc/systemd/system/x11vnc.service` 文件定义为systemd的服务单元文件以便于管理和自动启动: ```ini [Unit] Description=Start x11vnc at startup. After=multi-user.target [Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /root/.vnc/passwd -rfbport 5900 -shared [Install] WantedBy=multi-user.target ``` 这段配置指定了当多用户模式加载完成后即运行该服务,同时设置了若干参数确保其稳定性和安全性,例如循环监听端口5900上的请求并且允许多客户端并发连接。 激活并开启新建立的服务使得每次开机都能自启: ```bash sudo systemctl daemon-reload sudo systemctl enable x11vnc sudo service x11vnc start ``` 这些命令重新载入了守护进程配置从而识别新增加的服务描述符,随后设定了随系统引导而启动的目标状态最后立即触发了一次性的即时启动过程。 #### 测试连接 现在可以从另一台机器尝试使用任何支持RFB协议(VNC)的应用程序去连接这台Ubuntu主机,默认情况下地址应形如 `<IP Address>:5900` 或者简单写作 `<IP Address>` 即可成功接入图形界面[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值