3

У меня есть некоторые пользователи, работающие в режиме ожидания на системах Ubuntu и Arch Linux. Это означает, что таймеры пользователей могут работать, даже если они не вошли в систему. Как пользователь root, как я могу видеть все таймеры активными, включая все таймеры пользователей?

systemctl list-timers даст мне системные таймеры. Если я вошел в систему как пользователь systemctl --user list-timers выдаст мне таймеры для этого пользователя. Однако, если я запускаю sudo -u anotheruser systemctl --user list-timers я получаю сообщение Failed to connect to bus: No such file or directory .

1 ответ1

2

Благодаря IRC-каналу Freenode #systemd (пользователи dreisner и damjan) я узнал, что systemd требует, чтобы пользователь запустил systemctl --user list-timers для печати таймеров выполнения.

Если администратор системы хочет использовать sudo или su качестве другого пользователя для просмотра таймеров, ему необходимо установить переменную XDG_RUNTIME_DIR .

Например, sudo -u $anotheruser XDG_RUNTIME_DIR=/run/user/$anotheruser_uid systemctl --user list-timers вернет $anotheruser таймеры.

Чтобы автоматизировать процесс просмотра всех таймеров в системе, я создал скрипт на Bash и Haskell.

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