systemdと他のinitシステムの違いは何ですか?


23

公式ではありませんが、systemdがDebianにやってくるようです。その決定に関する白熱したメーリングリストの議論を読んだ後、Linuxユーザーの間でsystemdが二極化する性質に興味があります。私はDebian(sysvinit)およびGentoo(OpenRC)システムを実行しており、systemdについて具体的なことは何も知りませんが、私の方法が近づいているように見えます。

systemd対upstartの長所と短所を尋ねるこの関連する質問を見てきましたが、その質問が投稿されてから3年が経ち、その間に状況が変わったと確信しています。

私の質問は次のとおりです。systemdは他のinitシステムと比較してどうですか?

  • 他のinitシステムではできないことで何ができるのでしょうか?
  • 別の初期化システムからそれに切り替えることで失うものはありますか?
  • systemdの管理は他と比較してどうですか?

1
Gentooを使用すると、systemd実際に体験して、簡単に実行できます!

私が特に興味を持っているのは、ユーザーセッションです。いくつかの顕著な例外を除いて、今のところかなりうまく機能しています。これは、他のほとんどの初期化システムでは本当に無視されていると感じているものです。
クリスダウン14

@ChrisDown、システムの開始/停止、およびそのサービスの管理は基本的な機能であり、緊密に統合されていることが望ましいです(したがって、「試行された万能薬」は誤った誤特性です)。また、レナートだけではなく、これに取り組んでいるのはすべてのディストリビューションの人々です。
フォンブランド14

@ChrisDown、ばかげてはいけません。systemd現在、ウェブサーバーは含まれていませんし、含まれていませんし、ロードマップでQRを読み取ることもありません。すべての重要なディストリビューション(今のところUbuntuを除く)について話すときは、デフォルトとして使用してください(オープンソースの人々は極端に独立している傾向があり、「プレッシャー」は彼らがそうしない場合にこれを行うことはありません) 「それが最良の選択肢だとは思わない)。
フォンブランド14

現在、RHEL7にも付属していsystemdます。地獄Py3kがいつディストリビューションでデフォルトのPythonインタープリターになるのか不思議に思う。
yegle 14

回答:


26

おそらくあなたが知りたいことはすべて、Debianプロジェクトがどのinitsystemを使用するかを決定する際にまとめた「Debate Init System To Use」ページにあります。そのページ内には、initsystemsの各選択への個別のリンクがあります。

Systemdの入門書として、このページにはRHEL7:Systemdの使用を開始するために知っておくべきほとんどすべての情報があります。

2つの主要な選択肢をよりよく理解するのに役立つとわかった追加のリソースは、それぞれの技術に関するWikipediaページも読みました。

Gentooプロジェクトは、さまざまな初期システム全体の主要な機能の優れた比較も維持しています。

あなたの質問に対する私の意見

Q#1: systemdは他のinitシステムと比較してどうですか?

これは、SEの回答のスペースで対処するのは非常に難しい質問なので、上記で参照したさまざまな情報源に従うことをお勧めします。しかし、私はこれを言います。systemd代替案についての多くの記事を読んで、Linuxシステムでサービスを起動するために使用された以前のツールで不足していたものの多くの側面に対処しようとしています。非常によく考え抜かれたデザインで、非常にモジュール化された方法で提供しようとしています。

systemdコンポーネント

   systemdコンポーネントのss

ですから、IMOは、その設計の努力、その設計の実行、およびいくつかのより大きなLinuxディストリビューションによる採用の両方の点で非常に好意的に比較すると言いたいと思います。

Q#2:他のinitシステムではできないことで何ができますか?

sytemd他のシステムではできないことを、できることはたくさんあります。おそらく最も強力な機能の3つは次のとおりです。

  1. ロギング
  2. リソース制限
  3. 分岐するデーモンへの対処

1.ロギング

ロギングの最前線でsystemdは、「ジャーナル」と呼ばれる新しいロギングシステムが確立され、サービスが呼び出されsystemd-journald.serviceます。これは独自のトピックです。詳細については、この記事「Introducing the Journal」を参照してください。ログインするユーザー「harald」の例を次に示します。

_SERVICE=systemd-logind.service
MESSAGE=User harald logged in
MESSAGE_ID=422bc3d271414bc8bc9570f222f24a9
_EXE=/lib/systemd/systemd-logind
_COMM=systemd-logind
_CMDLINE=/lib/systemd/systemd-logind
_PID=4711
_UID=0
_GID=0
_SYSTEMD_CGROUP=/system/systemd-logind.service
_CGROUPS=cpu:/system/systemd-logind.service
PRIORITY=6
_BOOT_ID=422bc3d271414bc8bc95870f222f24a9
_MACHINE_ID=c686f3b205dd48e0b43ceb6eda479721
_HOSTNAME=waldi
LOGIN_USER=500

2&3.分岐するリソース制限とデーモン

systemdここでcgroupsは、リソースへのアクセスの分岐または制限を必要とするサービスを封じ込め、リソースを制限するために使用する新しいアプローチを使用します。

抜粋

Systemdには、分岐するデーモンを追跡する問題に対する非常に巧妙なソリューションがあります。これは、偶然にも同時にリソース制限を処理します。Upstartがフォークを監視するためにptraceを使用する場合、systemdはコントロールグループ(Linux 2.6.24以降が必要)で各デーモンを実行します。これにより、この種の制御グループが作成されたため、フォークデーモンと非フォークデーモンの両方でリソース制限が簡単になります。

ソース:Daemon Showdown:Upstart vs.Runit vs.Systemd vs.Circus vs.God

Q#3:別の初期化システムから切り替えることで失うものはありますか?

おそらく、UpstartまたはsysV initを介してsystemdに切り替える際の最大の警告は、多くの新しい複雑さを受け入れる必要があることです。Systemdには多くの可動部分があり、非常に機能が豊富であるため、機能が追加されたため、すべての動作について理解を得るためにかなりの時間を費やすことになります。

Q#4: systemdの管理は他と比較してどうですか?

上記のQ#3の回答で述べたように。ここでもう一度繰り返します。sysV initが数時間から数日で管理とナビゲートの方法を学ぶのはかなり簡単でしたが、Upstartは速度を上げるために1週間以上かかる可能性がありますが、systemdはおそらくもっと長くかかります。それについて十分な大まかな知識を得るために何週間も.serviceかかりました。そこでは、私自身のファイルを作成することができます。

参照資料


@カレブ、問題は非常に複雑であり、さらに多くの人々にとって厄介な問題です。答えは現状のままでいいと思います
フォンブランド

@Caleb-はい、大歓迎です。フィードバックをありがとう。
slm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.