如果我想知道誰從何時登入以及目前在他的控制下運行哪些進程,我該如何在 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
應用程式介面。 freedesktop.org。- GSOC 2014:systemd 替換實用程式 (systembsd)。 OpenBSD 期刊。 2014年9月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
...