应用场景
在上面博客中介绍了一台Linux服务器上开启一个VNCServer,然后通过Windows端的VNCviewer去连接该Linux,最后可以在Windiwos系统中,远程看到Linux的系统界面。但是现实情况可能需要不止一个用户桌面环境,比如我们在远程安装oracle时还需要一个oracle用户的桌面环境,而之前只配置了root用户,下面描述配置多用户的VNCserver。原理很类似,只需要配置多个vncserver@:n.service。
操作步骤
1. 复制vncserver@.service
假设我们的用户已经建立好,这里以admin为例。首先以root用户登录,在目录下,和前述一样,拷贝配置文件,不过这里不是:1,而是:2,数字可以自己设置,一般用递增来描述。
#cd /lib/systemd/system
#cp vncserver@.service vncserver@:2.service
#vi vncserver@:2.service
修改配置
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l admin -c "/usr/bin/vncserver %i "
PIDFile=/home/admin/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
保存退出。然后按照配置文件提示,执行
#systemctl daemon-reload
#systemctl enable vncserver@:2.service
2. 修改vnc登录验证密码
执行完毕后,切换到admin账户,执行
$vncserver :2
会要求输入验证密码
You will require a password to access your desktops.
Password:
Verify:
xauth: file /home/admin/.Xauthority does not exist
New ‘localhost.localdomain:2 (admin)’ desktop is localhost.localdomain:2
Creating default startup script /home/admin/.vnc/xstartup
Starting applications specified in /home/admin/.vnc/xstartup
Log file is /home/admin/.vnc/localhost.localdomain:2.log
3. 启动服务
之后切换回root,执行
# systemctl deamon-reload
# systemctl start vncserver@:2.service
这时候提示启动不成功,提示已经有一个vncserver as :2 running了,这时候我们先要杀掉这个进程,执行命令
# ps -ef | grep vnc
查看vncserver :2的进程id,如pid为1311,则执行
# kill -9 1311
# systemctl start vncserver@:2.service
还是报错,查看日志
# journalctl -xn
提示需要删除/tmp/.X2-lock ,执行
# rm /tmp/.X2-lock
# systemctl start vncserver@:2.service
还是报错,查看日志,提示需要删除/tmp/.X11-unix/X2 ,执行
# rm /tmp/.X11-unix/X2
再次启动
# systemctl start vncserver@:2.service
# systemctl status vncserver@:2.service