我打开了一个 VNC 服务器,我的 VNC 会话突然中断了。我打开了很多 xterm。当我 ssh 到机器上时,输入
users
我看到一群用户 – 我的用户帐户,例如:
userA UserA UserA UserA UserA UserA UserA
我知道我可以使用
pkill -u usersname
由于我只能以身份登录userA
,因此每次运行时pkill-u UserA
,它都会终止我当前的会话。但其他用户身份仍然存在
我能做些什么?
答案1
一个有用的工具是slay
:sudo slay username
如果你不slay
以 root 身份运行,你最终会杀死所有的你的但是,它只针对特定进程,而不是指定的用户。
也可以看看:https://unix.stackexchange.com/questions/18043/how-do-i-kill-all-a-users-processes-using-their-uid
答案2
使用以下命令获取除当前 shell 之外的所有 userA 的 PID:
/bin/ls -u userA | egrep -v "^ +$$"
(请注意命令中的双引号egrep
。)然后只杀死那些 PID。您的 shell 应该会保留下来。
答案3
跑步
/bin/ls -u redmage
刚刚给了我:
/bin/ls: cannot access redmage: No such file or directory
然而,
who -u
告诉我谁登录了,并打印了相关的 pid,例如:
redmage tty4 2012-06-09 22:05 00:01 695
bluemage pts/1 2012-06-09 18:28 . 3466 (:0.0)
然后只需 kill -9;不再有 CPU 时间!
kill -9 695
答案4
这似乎是pkill -u someusername
试图杀死某个用户名的所有进程。
我认为如果您尝试这样做会发生的情况是,您会成功终止您自己的会话中的进程,但却无法终止其他进程,因为您无权这样做。
尽管未经测试,但我相信这应该可以解决问题:
sudo pkill -u usersname