如何取得有關使用者及其在 systemd 中運行的進程的資訊?

如何取得有關使用者及其在 systemd 中運行的進程的資訊?

如果我想知道誰從何時登入以及目前在他的控制下運行哪些進程,我該如何在 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 人員已將它們重新命名為loginctllogind在更新的版本中。

進一步閱讀

答案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
  ...

相關內容