如何获取有关用户及其在 systemd 中运行的进程的信息?

drp*_*eas 3 users systemd processes

如果我想知道谁从什么时候开始登录以及当前在他的控制下运行的进程是什么,我该如何在 systemd 中做到这一点?

Jde*_*eBP 5

您不需要 systemd ……但也有一种 systemd 方法可以做到这一点,只要您运行systemd-logind守护程序或提供相同 API 的东西。

首先获取会话列表:

$ systemd-loginctl list-sessions
   SESSION        UID USER             SEAT            
       c89       1000 jdebp            seat0           

1 sessions listed.
Run Code Online (Sandbox Code Playgroud)

然后对于您感兴趣的每个会话显示其状态:

$ 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
Run Code Online (Sandbox Code Playgroud)

systemd 人员已将它们重命名为loginctllogind更新版本。

进一步阅读