web-dev-qa-db-ja.com

なぜupstartはsystemdの子プロセスなのですか?

???? pstree -h

systemd─┬─ModemManager─┬─{gdbus}
        │              └─{gmain}
        ├─NetworkManager─┬─dhclient
        │                ├─dnsmasq
        │                ├─{gdbus}
        │                └─{gmain}
        ├─accounts-daemon─┬─{gdbus}
        │                 └─{gmain}
        ├─acpid
        ├─agetty
        ├─avahi-daemon───avahi-daemon
        ├─cron
        ├─cups-browsed─┬─{gdbus}
        │              └─{gmain}
        ├─dbus-daemon
        ├─gnome-keyring-d─┬─{gdbus}
        │                 ├─{gmain}
        │                 └─{timer}
        ├─irqbalance
        ├─lightdm─┬─Xorg
        │         ├─lightdm─┬─upstart─┬─Thunar─┬─chrome─┬─2*[cat]
        │         │         │         │        │        ├─chrome─┬─chrome─┬─chr+
        │         │         │         │        │        │        │        ├─chr+
        │         │         │         │  

いくつかあることを読みましたプロセス管理システム

  • systemVinit、従来のUNIX
  • ubuntuに付属しているupstart
  • systemd、その複雑さについて物議を醸している別の新しいもの

systemVinitすべてのプロセスのプロセスを使用するPCでは、一番上にある最初のプロセスはinitと呼ばれ、systemdを使用するPCでは最初のものはと呼ばれるsystemd

今、私が走ると

pstree

Systemdは、systemdプロセス管理システムで期待されているように、最初のプロセスであることに気付きましたが、混乱したのは、upstartがsystemdの子プロセス(systemd-> lightdm-> lightdm-> upstart)であるということです。

なぜそうなのか、なぜプロセス管理システムは別のプロセス管理システムの子プロセスなのか? (少なくともこれは私が思うことです)

4
sharkant

これは下位互換性と関係があり、upstartからsystemdに移行するとUbuntu15.04で壊滅的な障害が発生する可能性があるシナリオと関係があります。 発表を引用systemdがUbuntuにやってくる:

緊急時対応計画:数週間後に回帰が多すぎるか大きすぎることがわかった場合、2つの単純なアップロード(ubuntu-standardとinit)を使用して、デフォルトでupstartに戻すことができます。

ここでの他の詳細は、Ubuntuが16.10より前にsystemdに「完全に移行」しておらず、グラフィカルログインがsystemdではなくupstartによって管理されていることです(これでも、選択したinitマネージャーです)。アナウンス ここ

UDSで説明したように 1 upstartを使用してグラフィカルデスクトップセッションを開始するのではなく、systemd(および適切な場合はD-Busアクティベーション)に移行しています。 2週間前、Sebastien Bacher、Iain Lane、Ted Gould、そして私は3日間のスプリントを行い、Ubuntuセッションのほとんどのサービスを変換しました。その前後に、systemdとupstartで必要なインフラストラクチャに取り組み、ほとんどの変換/チェックを行いました。他のフレーバー。これで、着陸してより幅広いテストを行う準備が整いました。

Ubuntuは非常に安全な方法でsystemdに移行していましたが、最初に移行しました 2013年にConsoleKit関連のもの からsystemd-logind次に、問題を回避するために、init自体と残りのユニットを移行します。

tl、dr:特定のケースでは、upstartがグラフィカルログイン関連のものを管理している可能性があります(lightdm ).。

4
user34720

Upstart構成ファイルとの下位互換性を維持するためだけに。
しかし、Ubuntuやその他多くのinitシステムとしてupstartに取って代わりました。

2
M4rty