systemd
概要
OS起動時に一番最初に起動されて、他のプロセスを起動する(initプログラム)
現在は殆どのメジャーなディストリビューションで採用されてる
憎まれっ子世に憚るじゃないけど、有名になって批判も多い。
Unix哲学と相容れないということで批判
一つのことを上手にやる→多くの機能を詰め込みまくってる
Windows的なものがLinuxに持ち込まれてきた感じ
メリット
シェルスクリプトじゃないのでシンプルに記述できる
Unitの起動処理を可能な限り並列化するのでシステムの起動が速い
ユニットファイルのディレクトリ
/usr/lib/systemd/systemに標準のユニットファイル
/etc/systemd/systemに独自のユニットファイル
/run/systemd/systemに自動的に生成されるユニットファイル
概念
ユニット
table:ユニットのタイプ
service デーモンの起動
target 複数ユニットをグループ化してまとめたもの
mount ファイルシステムのマウントポイント制御
device ディスクデバイス
Unit間の「依存関係」と「順序関係」を分けて定義できるところが、systemdの特徴と言えるかも知れません。Upstartでは、イベントの連鎖によって依存する処理が順次実行されていきますが、この場合は、「依存関係=順序関係」となるため、「依存はしているが並列に起動してもかまわない」というような処理を並列化することができませんでした。
例
sshd.service
code:txt
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.target
Wants=sshd-keygen.target
Type=notify
EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
WantedBy=multi-user.target
参照