Как убить и заменить X сессию через кли

Может кто-нибудь сказать мне, как удалить неактивные сеансы 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 не появляются , чтобы делать что-либо.

У меня есть мастерская, где несколько пользователей будут использовать компьютер под своим логином. После окончания семинара есть несколько логинов, которые остаются открытыми. Я бы предпочел убить открытые сессии, а не пытаться войти на экран каждого пользователя.

Опять же, этот вопрос касается не только выхода пользователей из системы. Я надеюсь получить ясность и в отношении уничтожения / удаления зависших процессов, которые трудно убить.

2
задан 13 April 2017 в 15:24

2 ответа

Я заметил, что команда уничтожения не всегда работает в первый раз. Также существуют времена, когда это будет работать, но просто иметь отсроченную реакцию.

В случае уничтожения сессии входа в систему, это, скорее всего, занимает время для всех процессов, чтобы умереть или быть уничтоженным. Таким образом, я записал сценарий, который проверяет и добивается последующих уничтожений, который всегда успешно выполнялся, чтобы выйти из системы желаемое X сессий.

#!/bin/bash

results=1   
while [[ $results > 0 ]]
do
    sudo kill -9 25745
    results=$?
    echo -ne "Response:$results..."
    sleep 20
done
0
ответ дан 13 April 2017 в 15:24

Уничтожить все вошло в систему пользователи для :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)
0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: