UbuntuとArchLinuxのsystemdシステムでlingerモードで実行しているユーザーがいます。つまり、ユーザーのタイマーは、システムにログインしていなくても実行できます。 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
が取得されます。
Freenode #systemd IRCチャネル(ユーザー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 でスクリプトを作成しました。