3

In my ps output:

root         1  0.0  0.0 225552  5316 ?  Ss  /lib/systemd/systemd --system --deserialize 19
message+   572  0.0  0.0  51564  3076 ?  Ss  /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
root       590  0.0  0.0  71084  2084 ?  Ss /lib/systemd/systemd-logind
t          929  0.0  0.0  76872  1988 ?  Ss /lib/systemd/systemd --user
t          980  0.0  0.0  50792  2688 ?  Ss /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
systemd+  2632  0.0  0.0  71240  2464 ?  Ss /lib/systemd/systemd-resolved
systemd+  2637  0.0  0.0 143976   712 ?  Ssl /lib/systemd/systemd-timesyncd
root      2642  0.0  0.4 232544 37308 ?  S<s /lib/systemd/systemd-journald
root      3334  0.0  0.0  46108  2252 ?  Ss /lib/systemd/systemd-udevd
testme   22693  0.0  0.0  76964  3428 ?  Ss /lib/systemd/systemd --user

Why do I have so many systemd related processes?

In particular, why is there a systemd process owned by each user that is logged in?

In the boot sequence of Linux, the kernel starts the init system as the first process, and then the init process runs login so that each user can login. I think the init system should be run as as a singleton process, regardless of how many users login, and regardless of whether the init system is sysvinit or systemd, correct?

Does root have to log in to start its systemd process?

For those systemd processes not owned by root, are they run as daemons?

Thanks.

Tim
  • 101,790

1 Answers1

3

The init process is pid 1, and root most certainly doesn’t have to log in to start it. The other processes aren’t the init process.

The various per-user systemd processes manage each user’s services. These include user services (systemctl --user start ...), and a number of “per-user dæmons” (in GNOME, you’ll see PulseAudio, various GVFS processes, etc.).

The other systemd processes handle specific services: the resolver, the time synchronisation service, the journal, etc.

Your ps output shows that none of these processes has a controlling terminal, so they’re all running as dæmons (for some value of dæmon).

systemd has very good documentation, try man systemd, man systemd-logind etc.

Stephen Kitt
  • 434,908