最近、マルチコアのCPUが普通になったため、並列処理のできないsysv initは時代遅れになった。
代わりに最近使われるのがsystemd。
systemdではシェルスクリプトではなくUnitと呼ばれる設定ファイルを記述し、並列処理ができるところではできる限り並列処理を行う。
なんだか、単なる並列のinitシステムではなく、新しいLinuxの管理ツールのデファクトスタンダードになりつつある。
それもそのはず、Linuxの開発者たちは「無意味なLinuxディストリビューション間の差異をなくす」ために、systemdを位置付けて開発している。
だが、複雑怪奇なsystemdは賛否両論を生んでおり、systemdを排除したDevuanのようなディストリビューションも開発されている。
たとえば、
systemctl start httpd.service
とすれば、httpdのサービスが起動する。
startのほか、restart(再起動), stop(停止), reload(設定の再読み込み), status(情報表示), show(情報表示2)などがある。また、enable, disableで自動起動を有効化・無効化できるほか、is-enabledで有効・無効の確認ができる。
システム標準のUnitファイルは/usr/lib/systemd/system/にあり、管理者による設定は/etc/systemd/system/にUnitファイルを置いて行う。
Unitファイルは、前後関係と依存関係によって成り立つ。前後関係があるUnitについてはその順序を守り、前後関係のないUnitについてはすべて並列で起動する。
また、udevのデフォルトの設定(ルール)は/usr/lib/udev/rules.dに、管理者によるルールは/etc/udev/rules.dにある。
systemd-resolved がインストールされている場合、DNS の設定は /etc/systemd/resolved.conf などに記述されます。
# See resolved.conf(5) for details [Resolve] DNS=1.1.1.1 1.0.0.1 FallbackDNS=94.140.14.14 94.140.15.15 DNSSEC=true DNSOverTLS=true Cache=yes
systemd-resolve サービスの再起動(deb系の場合)
$sudo systemctl restart systemd-resolved.service
設定の確認
$resolvectl status