应用场景

在上面博客中介绍了一台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
Logo

更多推荐