Может кто-нибудь сказать мне, как удалить неактивные сеансы 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
не появляются , чтобы делать что-либо.
У меня есть мастерская, где несколько пользователей будут использовать компьютер под своим логином. После окончания семинара есть несколько логинов, которые остаются открытыми. Я бы предпочел убить открытые сессии, а не пытаться войти на экран каждого пользователя.
Опять же, этот вопрос касается не только выхода пользователей из системы. Я надеюсь получить ясность и в отношении уничтожения / удаления зависших процессов, которые трудно убить.
Я заметил, что команда уничтожения не всегда работает в первый раз. Также существуют времена, когда это будет работать, но просто иметь отсроченную реакцию.
В случае уничтожения сессии входа в систему, это, скорее всего, занимает время для всех процессов, чтобы умереть или быть уничтоженным. Таким образом, я записал сценарий, который проверяет и добивается последующих уничтожений, который всегда успешно выполнялся, чтобы выйти из системы желаемое X сессий.
#!/bin/bash
results=1
while [[ $results > 0 ]]
do
sudo kill -9 25745
results=$?
echo -ne "Response:$results..."
sleep 20
done
Уничтожить все вошло в систему пользователи для :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)