web-dev-qa-db-ja.com

すべてのユーザーのsystemdタイマーを表示するにはどうすればよいですか?

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が取得されます。

3
Dave Parrish

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 でスクリプトを作成しました。

2
Dave Parrish