有人能告诉我如何删除休眠的 X 会话吗?这个问题类似于从命令行注销其他用户,但更具体地说是控制X显示,我发现很难杀死它。
我使用命令“who -u”来获取其他屏幕的会话:
$ who -u
这给了我:
user1 :0 2014-08-18 12:08 ? 2891 (:0)
user1 pts/26 2014-08-18 16:11 17:18 3984 (:0)
user2 :1 2014-08-18 18:21 ? 25745 (:1)
user1 pts/27 2014-08-18 23:10 00:27 3984 (:0)
user1 pts/32 2014-08-18 23:10 10:42 3984 (:0)
user1 pts/46 2014-08-18 23:14 00:04 3984 (:0)
user1 pts/48 2014-08-19 04:10 . 3984 (:0)
没有kill -9 25745
出现做任何事。
我有一个研讨会,许多用户将使用自己的登录名使用计算机。研讨会结束后,有许多登录名仍处于打开状态。我宁愿关闭打开的会话,也不愿尝试登录每个用户的屏幕。
再次强调,这个问题不仅仅与注销用户有关。我还希望能够弄清楚如何终止/删除难以终止的卡住进程。
答案1
我注意到 kill 命令并不总是第一次就起作用。有时它也能起作用,但只是响应延迟。
在终止登录会话的情况下,所有进程很可能需要一些时间才能终止或被终止。因此,我编写了一个脚本来检查并跟踪后续终止操作,这些终止操作始终成功注销所需的 X 会话。
#!/bin/bash
results=1
while [[ $results > 0 ]]
do
sudo kill -9 25745
results=$?
echo -ne "Response:$results..."
sleep 20
done
答案2
要杀死所有登录的用户,请:1
使用以下命令:
awk '/\s:1\s/ {system("sudo kill -9 "$6)}' <<< $(who -u)
在你的情况下user2
user2 :1 2014-08-18 18:21 ? 25745 (:1)
user2
或者按用户名查找所有会话
awk '/^user2\s/ {system("sudo kill -9 "$6)}' <<< $(who -u)