如果我想知道谁从何时登录以及当前在他的控制下运行哪些进程,我该如何在 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
...