おそらくあなたが知りたいことはすべて、Debianプロジェクトがどのinitsystemを使用するかを決定する際にまとめた「Debate Init System To Use」ページにあります。そのページ内には、initsystemsの各選択への個別のリンクがあります。
Systemdの入門書として、このページにはRHEL7:Systemdの使用を開始するために知っておくべきほとんどすべての情報があります。
2つの主要な選択肢をよりよく理解するのに役立つとわかった追加のリソースは、それぞれの技術に関するWikipediaページも読みました。
Gentooプロジェクトは、さまざまな初期システム全体の主要な機能の優れた比較も維持しています。
あなたの質問に対する私の意見
Q#1: systemdは他のinitシステムと比較してどうですか?
これは、SEの回答のスペースで対処するのは非常に難しい質問なので、上記で参照したさまざまな情報源に従うことをお勧めします。しかし、私はこれを言います。systemd
代替案についての多くの記事を読んで、Linuxシステムでサービスを起動するために使用された以前のツールで不足していたものの多くの側面に対処しようとしています。非常によく考え抜かれたデザインで、非常にモジュール化された方法で提供しようとしています。
systemdコンポーネント
ですから、IMOは、その設計の努力、その設計の実行、およびいくつかのより大きなLinuxディストリビューションによる採用の両方の点で非常に好意的に比較すると言いたいと思います。
Q#2:他のinitシステムではできないことで何ができますか?
sytemd
他のシステムではできないことを、できることはたくさんあります。おそらく最も強力な機能の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
かかりました。そこでは、私自身のファイルを作成することができます。
参照資料