まず第一にsystemd
、伝統的なユニックスではありませんinit
。Systemdは非常に優れているため、2つを比較するのは少し不公平です。
質問に答えるために必要なのは、いくつかのバイナリと次の構成ファイルです。
/usr/lib/systemd/system/default.target
/usr/lib/systemd/system/basic.target
/usr/lib/systemd/system/sysinit.target
/usr/lib/systemd/system/getty.target
/usr/lib/systemd/system/getty@.service
/usr/lib/systemd/system/console-getty.service
発行するとsystemctl enable console-getty.service getty@tty2.service
、これらのシンボリックリンクが作成されます。
/etc/systemd/system/default.target.wants/getty@tty2.service-> / lib / systemd / system / getty @ service
/etc/systemd/system/getty.target.wants/console-getty.service-> /lib/systemd/system/console-getty.service
注:+ を押すとオンデマンドで動的にsystemd
起動するためのの特別な機能を利用するには、少なくとも次の2つのファイルも必要であるように見えます。agetty
AltF3
/etc/systemd/logind.conf
/lib/systemd/system/autovt@.service
場所autovt@.service
へのシンボリックリンクですgetty@.service
。
構成ファイルの内容:
default.target
、getty.target
、sysinit.target
ファイルはを除いて空にすることができます[Unit]
タグと(多分)Description=xxx
。
basic.target
依存情報も含まれます。
[単位]
Description =基本システム
Requires = sysinit.target
Wants = sockets.target timers.targetpaths.target slices.target
After = sysinit.target sockets.target timers.targetpaths.target slices.target
ファイルとして存在しないターゲットへの参照が必要かどうかはわかりません。それらはsystemd.special(7)
マニュアルページで説明されています。
console-getty.service
:(コンソールのagettyの特殊なケース)
[単位]
Description =コンソールゲッティ
After = systemd-user-sessions.service plymouth-quit-wait.service
Before = getty.target
[サービス]
ExecStart =-/ sbin / agetty --noclear --keep-baud console 115200,38400,9600 $ TERM
Type = idle
再起動=常に
RestartSec = 0
UtmpIdentifier = cons
TTYPath = / dev / console
TTYReset = yes
TTYVHangup = yes
KillMode = process
IgnoreSIGPIPE = no
SendSIGHUP = yes
[インストール]
WantedBy = getty.target
getty@.service
:(コンソールを除くすべてのgettyサービスの汎用構成)
[単位]
Description =%Iのゲッティ
After = systemd-user-sessions.service plymouth-quit-wait.service
Before = getty.target
IgnoreOnIsolate = yes
ConditionPathExists = / dev / tty0
[サービス]
ExecStart =-/ sbin / agetty --noclear%I $ TERM
Type = idle
再起動=常に
RestartSec = 0
UtmpIdentifier =%I
TTYPath = / dev /%I
TTYReset = yes
TTYVHangup = yes
TTYVTDisallocate = no
KillMode = process
IgnoreSIGPIPE = no
SendSIGHUP = yes
[インストール]
WantedBy = getty.target
DefaultInstance = tty1
最後に、おそらくこれらの特別なバイナリのいくつかが必要になります(重要なバイナリは試していません)
/ lib / systemd / systemd(/ sbin / initは通常これを指します)
/ lib / systemd / systemd-logind
/ lib / systemd / systemd-cgroups-agent
/ lib / systemd / systemd-user-sessions
/ lib / systemd / systemd-vconsole-setup
/ lib / systemd / systemd-update-utmp
/ lib / systemd / systemd-sleep
/ lib / systemd / systemd-sysctl
/ lib / systemd / systemd-initctl
/ lib / systemd / systemd-reply-password
/ lib / systemd / systemd-ac-power
/ lib / systemd / systemd-activate
/ lib / systemd / systemd-backlight
/ lib / systemd / systemd-binfmt
/ lib / systemd / systemd-bootchart
/ lib / systemd / systemd-bus-proxyd
/ lib / systemd / systemd-coredump
/ lib / systemd / systemd-cryptsetup
/ lib / systemd / systemd-fsck
/ lib / systemd / systemd-hostnamed
/ lib / systemd / systemd-journald
/ lib / systemd / systemd-journal-gatewayd
/ lib / systemd / systemd-journal-remote
/ lib / systemd / systemd-localed
/ lib / systemd / systemd-machined
/ lib / systemd / systemd-modules-load
/ lib / systemd / systemd-multi-seat-x
/ lib / systemd / systemd-networkd
/ lib / systemd / systemd-networkd-wait-online
/ lib / systemd / systemd-quotacheck
/ lib / systemd / systemd-random-seed
/ lib / systemd / systemd-readahead
/ lib / systemd / systemd-remount-fs
/ lib / systemd / systemd-resolved
/ lib / systemd / systemd-rfkill
/ lib / systemd / systemd-shutdown
/ lib / systemd / systemd-shutdownd
/ lib / systemd / systemd-socket-proxyd
/ lib / systemd / systemd-timedated
/ lib / systemd / systemd-timesyncd
/ lib / systemd / systemd-udevd
/ lib / systemd / systemd-update-done
systemdの開始プロセスを要約すると、次のように機能すると思います。
- systemdが見つけます
basic.target
(またはすべての*.target
ファイル?)
- 依存関係がに基づいて解決されている
WantedBy=
、Wants=
、Before=
、After=
...内のディレクティブ[Install]
のセクション*.service
および*.target
設定ファイル。
*.service
開始する必要がある(「特別な」サービスではない)、ディレクティブを含む[Service]
セクションがあり、ExecStart=
開始する実行可能ファイルを示します。