昨天我和同事在他的计算机上一起工作,我登录到我的集群帐户(使用 ssh),但我让会话保持打开状态,现在我回家了。
我不知道他是否在我之后结束了会议。
我需要从我的计算机注销(退出)集群的所有打开的会话。
如何注销所有打开的会话?
笔记: 更改密码可以提供帮助,但我无法更改密码
答案1
who -u
您可以使用提供登录用户列表以及 shell 会话的 PID 的命令。
root@server:/# who -u
root - pts/0 2017-08-08 15:52 00:08 21934 (192.168.5.33)
root - pts/1 2017-08-08 16:07 . 31669 (192.168.5.33)
然后相应地终止 shell 会话(在您的情况下,属于您用户的会话):
root@server:/# kill 21934 31669
请注意,终止 shell 将导致终止父 ssh 会话。
答案2
首先,您需要连接到运行进程的计算机。使用 SSH。
您可以通过发送信号到它。就您而言,该工作的正确信号是叹息。当终端消失时,该信号会自动发送(从词源学上讲,当调制解调器H翁向上)。
如果要关闭该计算机上的所有会话,请向所有进程发送 SIGHUP。你可以这样做
kill -HUP -1
-1
意思是“所有过程”。您无法杀死其他用户的进程,因此这只会杀死您的进程。
如果您只想终止某些进程,可以运行以下命令来列出您帐户上运行的所有进程:
ps -u $(id -u) -ww
一旦您决定要终止哪些进程,请仔细复制该列中的值PID
。例如,杀死 PID 123 和 125:
kill -HUP 123 125
如果进程对 SIGHUP 没有反应,则发送 SIGKILL。 SIGHUP 很好地询问,而 SIGKILL 不给该进程机会。
kill -KILL 123 125