3

Я хотел бы иметь список всех пользователей, которые активны в моей системе Linux, включая тех, у кого запущены, но отключены сеансы экрана. Команда who показывает только тех пользователей, которые в данный момент вошли в систему, но не пользователи с отключенными сеансами экрана и т.п.

Я обдумывал парсинг вывода ps но это также заставило бы пользователя показать, если у него запущено задание cron.

2 ответа2

5

Пытаться:

$ ps axno user,tty | awk '$1 >= 1000 && $1 < 65530 && $2 != "?"' | sort -u

Это должно сказать вам все UID с процессами с терминальным сеансом (как окно на экране). Я использую UID, чтобы отсеять «системных» пользователей (например, apache) и никого (высокий UID), и игнорировать демонов.

2

Вы можете попробовать кто и вывод ps с помощью grep:

~$ ps aux | grep screen

И фильтр на пользователя:

~$  ps aux | grep screen | grep $USER

(замените $ user на имя пользователя).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .