电子书:《模拟对话》,共50卷,数百篇精品文章,下载即奖励400信元!
返回列表 发帖

[讨论] VNC端口被占用:a vnc server is already running as

[讨论] VNC端口被占用:a vnc server is already running as

我在使用VNC的时候发现了这个问题:当我就想使用某个端口时,比如说端口6,
我使用vncserver :6,系统会报错,并提示我a vnc server is already running as :6
但是我使用vnc登录6号端口时无法登录(输入IP和端口,敲回车后会提示错误)
我在所有用户的目录下也都无法查到6号端口对应的log
我用root账号,vncserver -kill :6无法杀掉该端口,因为root并没有6号端口的信息,我在很长时间内都是躲避这样的端口,然而这样的端口越来越多,使我不胜烦恼。其实这些端口可能是以前的一些用户占用的。当他们离开这太服务器的时候并没有释放资源。
后来在网上查找,才找到了杀死这些进程的方法。其实每个端口都是vncserver的一个进程
1.所以我们使用 ps -ef | grep “vnc” 就能查到所有关于vncserver的进程
2.虽然root不能杀死vnc端口,但是root可以杀死步骤1中所查出来的进程。 kill -9  123456(进程号)
3. 然后就没有然后了,vnc这些僵尸端口就被杀死了。

再分享一个生成固定VNC端口的方法
1. 增加vnc用户,可以在终端上用useradd命令添加,也可以通过图形界面添加。网上也有一键添加的脚本
2. 编写/etc/sysconfig/vncserver脚本,填写每个用户对应的端口号和端口配置如下所示
    VNCSERVERS="1:root  2:xxx  3:ooo"
    VNCSERVERARGS[1]="-geometry 1900x1000 -alwaysshared -depth16"
    VNCSERVERARGS[2]="-geometry 1900x1000 -alwaysshared -depth16"
    VNCSERVERARGS[3]="-geometry 1900x1000 -alwaysshared -depth16"
3. 重启VNC服务,方式为service vncserver restart
然后就可以看到每个端口依次重启
这个过程中我遇到了两个问题:
问题1:当用户是第一次被添加时,使用脚本是无法分配端口的,因为每个用户下并没有一个.vnc/xstart,这时是无法用脚本一键分配端口的,需要每个用户手动执行vncserver来生成这个目录和文件。之后就可以用过以上脚本自动生成固定端口了
问题2:运行脚本时执行到摸个端口时会失败,失败原因总结有以下几点
      1. 脚本中使用的某个端口已经被占用,此时杀掉该端口
      2. 本帖顶楼所讨论的幽灵端口问题
      3. 该脚本需要每个用户都是bash方式login的才可以顺利执行,如果某个用户习惯用csh,在生成用户时候直接使用的csh的login方式,或者在bash方式login之后,在.bashrc中自动切换都csh都会导致该用户端口无法顺利启动

TOP

返回列表

站长推荐 关闭


Keysight Engineering Education 2019课程详细介绍

Keysight Engineering Education 2019课程详细介绍


查看