ET创芯网论坛(EETOP)

找回密码

  登录   注册  

电动/混动汽车、48V系统、汽车功能安全等技术资料合集
查看: 6755|回复: 1

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

[复制链接]
发表于 2016-2-17 15:25:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我在使用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这些僵尸端口就被杀死了。
 楼主| 发表于 2016-4-6 13:49:44 | 显示全部楼层
再分享一个生成固定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都会导致该用户端口无法顺利启动
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关于我们|联系我们|ET创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2019-7-17 15:08 , Processed in 0.069808 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表