SysVの場合は、gettyエントリ、バイナリ、シェルバイナリと共有ライブラリ、PAM /security/shadowコンテンツ、および一部のデバイスファイルを再生成する必要がinit
あります。/etc/inittab
/sbin/init
login
getty
upstart
ほとんど同じ要件が必要ですが、必要ないため、/etc/inittab
以下にいくつかの*.conf
ファイルがあります。ランレベルを設定するため/etc/init
の* .confと適切なランレベルReborn ttyで、そのttyの各boot /の* .confです。start on startup
telinit
getty
どの構成とバイナリが必要ですかsystemd
init
?
私が見つけたすべての文書は、インストールされたシステムを使用してサービスを開始および停止する方法に焦点を当てたようです。
実行からコピーされた最小ファイルのリスト(kernel / initrdを除く)アーチまたはFedoraの帽子インストールはうまくいきますが、これに関する情報が見つからないようですsystemd
。
私が知りたいのは、initramfsから呼び出されるsystemd
ために必要なファイルと含める必要があるファイルです。switch_root
systemd
/sbin/init
upstart
バイナリと2つのファイルの例*.conf
:
文書/etc/init/whatever.conf
:
起動時に起動 ランレベル発行 仕事 スクリプト リモート初期化 2 最終スクリプト
文書/etc/init/tty1.conf
:
ランレベルで始まる [12345] 更生 /sbin/agetty -8 --noclear 38400 tty1 linux の実行
はいsysvinit
、バイナリと1つのconfファイル名は次のとおりです/etc/inittab
。
id:2:初期化デフォルト: c1:12345:respawn:/sbin/agetty 38400 tty1 Linux
今、私はsystemd
同等のものを探しています。
andを含む項目の1つがある場所に少なくとも*.service
1つのファイルが必要であるとします。しかし、何が必要ですか?[Service]
ExecStart=-/sbin/agetty --noclear %I linux
Restart=always
ベストアンサー1
まず、systemd
伝統的なUnixではありません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/システム/[Eメール保護] /usr/lib/systemd/system/console-getty.service
次に、次のシンボリックリンクを生成するには、次のコマンドを実行します。systemctl enable console-getty.service [email protected]
/etc/systemd/system/default.target.wants/[Eメール保護]-> /lib/systemd/system/getty@service /etc/systemd/system/getty.target.wants/console-getty.service -> /lib/systemd/system/console-getty.service
ノートsystemd
:動的に起動して+を押したときに要求に応じて起動する特別な機能を利用するには、agetty
少なくとも2つのファイルも必要です。AltF3
/etc/systemd/logind.conf /lib/systemd/システム/[Eメール保護]
[email protected]
シンボリックリンクはどこにありますか[email protected]
?
構成ファイルの内容:
フラグと(おそらく)を除いて、default.target
ファイルgetty.target
は空である可能性があります。sysinit.target
[Unit]
Description=xxx
basic.target
依存関係情報も含まれます。
[単位] 説明=基本システム リクエスト=sysinit.target 希望=sockets.targettimers.targetpaths.targetslices.target 以降=sysinit.targetsockets.targettimers.targetpaths.targetslices.target
ファイルに存在しないターゲットへの参照が必要かどうかはわかりません。彼らはで説明されていますsystemd.special(7)
マンページ。
console-getty.service
:(コンソールでagettyの特別な場合)
[単位] Description=ConsoleGetty 以降=systemd-user-sessions.service plymouth-quit-wait.service 前=getty.target [提供する] ExecStart=-/sbin/agetty --noclear --keep-baud コンソール 115200,38400,9600 $TERM タイプ=アイドル 再起動=常に 再起動時間 = 0 UtmpIdentifier=デメリット TTYPath=/dev/console TTYリセット=はい TTYVを壊す=はい KillMode=プロセス SIGPIPE無視=いいえ SIGHUP=YES 送信 [インストールする] WantedBy=getty.target
[email protected]
:(コンソールを除くすべてのgettyサービスの共通設定)
[単位] 説明=%Iのゲッティ 以降=systemd-user-sessions.service plymouth-quit-wait.service 前=getty.target 検疫を無視=はい 条件付きパス存在=/dev/tty0 [提供する] ExecStart=-/sbin/agetty --noclear %I $TERM タイプ=アイドル 再起動=常に 再起動時間 = 0 Utmp識別子=%I TTYパス=/dev/%I TTYリセット=はい TTYVを壊す=はい TTYVT割り当て解除=いいえ KillMode=プロセス SIGPIPE無視=いいえ SIGHUP=YES 送信 [インストールする] WantedBy=getty.target デフォルトインスタンス=tty1
最後に、いくつかの特別なバイナリが必要になることがあります(どれが重要かは試していません)。
/lib/systemd/systemd (/sbin/init は通常これを指します) /lib/systemd/systemd-ログイン /lib/systemd/systemd-cgroups-agent /lib/systemd/systemd-ユーザー-セッション /lib/systemd/systemd-vconsole-setup /lib/systemd/systemd-update-utmp /lib/systemd/systemd-睡眠 /lib/systemd/systemd-sysctl /lib/systemd/systemd-initctl /lib/systemd/systemd-reply パスワード /lib/systemd/systemd-ac-power /lib/systemd/systemd-有効化 /lib/systemd/systemd-バックライト /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-ホスト名 /lib/systemd/systemd-ジャーナルド /lib/systemd/systemd-journal-gatewayd /lib/systemd/systemd-journal-remote /lib/systemd/systemd-localed /lib/systemd/systemd-machined /lib/systemd/systemd-モジュール-ロード /lib/systemd/systemd-multi-seat-x /lib/systemd/systemd-networkd /lib/systemd/systemd-networkd-wait-online /lib/systemd/systemd-quotacheck /lib/systemd/systemd-任意のシード /lib/systemd/systemd-readahead /lib/systemd/systemd-remount-fs /lib/systemd/systemd-解決済み /lib/systemd/systemd-rfkill /lib/systemd/systemd-終了 /lib/systemd/systemd-shutdownd /lib/systemd/systemd-ソケット-プロキシd /lib/systemd/systemd-timedated /lib/systemd/systemd-timesyncd /lib/systemd/systemd-udevd /lib/systemd/systemd-更新-完了
systemd起動プロセスを要約すると、次のように動作すると思います。
basic.target
systemdは(またはすべての*.target
ファイルを?)探します。- 依存関係は、および設定ファイルセクションの、、、
WantedBy=
...ディレクティブに基づいて解決されます。Wants=
Before=
After=
[Install]
*.service
*.target
*.service
開始する必要があるサービス(「特殊」サービスではない)には、起動する実行可能ファイルを示す[Service]
指示を含むセクションがあります。ExecStart=