私のps
出力から:
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
システム化された関連プロセスがなぜそんなに多いのですか?
特にsystemd
ログインしているすべてのユーザーに対してプロセスがあるのはなぜですか?
Linux起動シーケンスでは、カーネルは最初のプロセスとしてinitシステムを起動し、login
すべてのユーザーがログインできるようにinitプロセスを実行します。ログインしているユーザーの数や初期化システムがsysvinitかsystemdであっても、initシステムはシングルトンプロセスとして実行する必要があると思います。そうですか?
root
プロセスを開始するにはログインする必要がありますかsystemd
?
ルート以外のシステムプロセスでは、デーモンとして実行されますか?
ありがとうございます。
答え1
initプロセスのpidは1で、ルートはそれを開始するためにログインする必要はありません。他のプロセスはinitプロセスではありません。
さまざまなユーザー固有のシステムプロセスがユーザー固有のサービスを管理します。これには、ユーザーサービス(systemctl --user start ...
)と複数の「ユーザー固有のデーモン」(GNOMEではPulseAudio、さまざまなGVFSプロセスなどが表示されます)が含まれます。
他のシステムプロセスは、パーサー、時間同期サービス、ログなどの特定のサービスを処理します。
出力ps
によると、これらのプロセスには制御端末がないため、すべてデーモンとして実行されています(一部のデーモン値に対して)。
systemdには非常に良いドキュメントがあります。試してman systemd
みてください。man systemd-logind