我遇到了以下问题:许多用户创建 VNC 会话后就忘记了。一段时间后,这些会话崩溃并开始消耗大约 100% 的电量。然后有人必须手动终止它们。
我的问题是,有没有办法找到那些崩溃的会话并自动终止它们?
答案1
您可以设置一个 cron 作业,每 x 分钟运行一次,运行一个脚本,该脚本本质上运行“ps aux | grep vnc”,并且对于每个实例,如果 proc util 超过某个阈值,则终止 pid。
答案2
您可以从 xinetd 运行 VNC 会话,当客户端断开连接时,它将终止 vncserver。这样做的缺点是不允许用户关闭查看器并在稍后重新连接。
答案3
您的用户是否需要重新连接到会话,或者他们的会话是否应该在断开连接时结束?如果他们不需要重新连接,Jeff McCune 的答案是一个很好的方法。如果他们确实需要重新连接,我建议在“netstat -an”的输出中搜索任何正在监听但尚未建立连接的 VNC 端口。然后对于这些端口,您可以 grep“ps ax”的输出以查找匹配的 VNC 屏幕号的进程 ID,并将其整理成列表。最后,您将浏览列表并终止这些 PID。
答案4
离开或停止 VNC 会话 1.要离开 VNC 会话,只需关闭本地计算机上的客户端窗口即可。这将终止您与 VNC 服务器的连接,但会保持 VNC 服务器会话完好无损,以便您稍后可以连接到它。
2.要终止您的 VNC 服务器会话,请登录 melodic 并发出以下命令:runvnc -kill:xx,其中 xx 是您的显示号码。
3.如果您忘记了显示号是多少(或者想检查您可能正在运行多少个 VNC 服务器会话),请键入 ps ax | grep Xvnc 命令“ps”将生成您正在运行的进程列表。符号“|”将 ps 命令的输出“通过管道”传输到“grep”命令,后者将搜索并显示包含表达式“Xvnc”的行。在这些行上,您将看到 Xvnc 后跟 :x,其中 x 是您的显示号。Xvnc 是运行 VNC 服务器会话的 unix 进程。现在您有了显示号,您可以终止 Xvnc 会话或从 VNC 客户端连接到它。
您可以通过输入以下内容进一步缩小 Xvnc 进程列表以仅显示您自己的进程
ps ax | grep Xvnc | grep
您的登录 ID 在哪里?