誰がいつログインしたか、また、その人の制御下で現在実行されているプロセスは何かを知りたい場合、systemd でそれをどのように実行できますか?
答え1
そのためにsystemdは必要ありません…しかし、systemdでそれを実行する方法があります同じようにsystemd-logind
デーモン、または同じ API を提供するものを実行している限りは問題ありません。
まずセッションのリストを取得します。
$ systemd-loginctl list-sessions
SESSION UID USER SEAT
c89 1000 jdebp seat0
1 sessions listed.
次に、関心のあるセッションごとにそのステータスを表示します。
$ systemd-loginctl session-status c89
c89 - jdebp (1000)
Since: Tue, 07 Oct 2014 20:16:20 +0100; 15s ago
Leader: 24453 (3)
Seat: seat0; vc6
TTY: /dev/tty6
Service: login; type tty; class user
Active: yes
CGroup: /user/jdebp/c89
├ 24453 login
├ 25661 -zsh
└ 25866 systemd-loginctl session-status c89
systemd の開発者は、最近のバージョンではこれらをloginctl
およびに名前変更しました。logind
参考文献
loginctl
。 freedesktop.org をご覧ください。logind
API。 freedesktop.org をご覧ください。- GSOC 2014: systemd 代替ユーティリティ (systembsd)。 OpenBSD ジャーナル。 2014-09-12.
答え2
そのために systemd は必要ありません。
誰がいつからログインしているかを知りたかった
使用who
$ who
jimmij tty7 2014-09-25 01:39 (:0)
jimmij pts/0 2014-09-25 01:39 (:0)
jimmij pts/2 2014-09-28 22:14 (:0)
w
あるいは追加情報を入手するのがさらに良い
$ w
jimmij tty7 25Sep14 12days 4:09m 5:24 sawfish
jimmij pts/0 25Sep14 53:43 8.81s 32:32 /usr/bin/python2.7 /usr/lib/python-exec/python2.7/ter
jimmij pts/2 28Sep14 8days 45.08s 2.45s /bin/zsh
現在彼の管理下で実行されているプロセスは何ですか
使用ps -u user
$ ps -u jimmij
PID TTY TIME CMD
352 ? 00:00:01 systemd
353 ? 00:00:00 (sd-pam)
359 ? 00:05:24 sawfish
372 ? 00:00:00 dbus-launch
373 ? 00:00:00 dbus-daemon
375 ? 00:00:16 sawfishpager
377 ? 00:32:32 terminator
...