私はinit 0
終了を呼び出す古い方法に精通しています。悪いことはわかっていますが、新しいArchインストールで試したときに次のような結果が得られました。
# init 0
Excess Arguments
systemd
ランレベルがサポートされるべきだと思ったので、これは私を混乱させます。マニュアルページを見ると、次のように言及されています。
SysVとの互換性のために、systemdがinitとして呼び出され、PIDが1以外の場合はtelinitを実行し、変更されていないすべてのコマンドライン引数を渡します。これは、通常のログインセッションで呼び出されたときにinitとtelinitが本質的に同じであることを意味します。詳細は telinit(8) を参照してください。
私は間違った構文を使用していますか、それとも完全に誤解していますかsystemd
?
追加の初期化/システム情報
# command -v init
/usr/bin/init
# file /bin/init
/usr/bin/init: symbolic link to ../lib/systemd/systemd
# /lib/systemd/systemd --version
systemd 234
+PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN default-hierarchy=hybrid
# command -v telinit
/usr/bin/telinit
# file /bin/telinit
/bin/telinit: symbolic link to systemctl
# systemctl --version
systemd 234
+PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN default-hierarchy=hybrid
一般システム情報
# uname -a
Linux arch 4.12.5-1-ARCH #1 SMP PREEMPT Fri Aug 11 12:40:21 CEST 2017 x86_64 GNU/Linux
# bash --version
GNU bash, version 4.4.12(1)-release (x86_64-unknown-linux-gnu)
答え1
SysVとの互換性のために[...]
システム234 [...]-SYSVINIT [...]
互換性オプションなしでsystemdを構築するため、マニュアルに記載されている互換性動作は発生しません。
答え2
あなたのシンボリックリンクを通して私が知っている限り、これは問題です。
init
リンクがシンボリックリンクである場合は、systemd
systemdが引数で何を取得できるかを確認する必要があります。
systemd [OPTIONS...]
Starts up and maintains the system or user services.
-h --help Show this help
--test Determine startup sequence, dump it and exit
--no-pager Do not pipe output into a pager
--dump-configuration-items Dump understood unit configuration items
--unit=UNIT Set default unit
--system Run a system instance, even if PID != 1
--user Run a user instance
--dump-core[=BOOL] Dump core on crash
--crash-vt=NR Change to specified VT on crash
--crash-reboot[=BOOL] Reboot on crash
--crash-shell[=BOOL] Run shell on crash
--confirm-spawn[=BOOL] Ask for confirmation when spawning processes
--show-status[=BOOL] Show status updates on the console during bootup
--log-target=TARGET Set log target (console, journal, kmsg, journal-or-kmsg, null)
--log-level=LEVEL Set log level (debug, info, notice, warning, err, crit, alert, emerg)
--log-color[=BOOL] Highlight important log messages
--log-location[=BOOL] Include code location in log messages
--default-standard-output= Set default standard output for services
--default-standard-error= Set default standard error output for services
問題は実際には実際のファイルがなく、リンクされたリンクだけがあるinit
ことです。systemd
答え3
追加のパッケージ "systemd-sysvcompat"があり、その後はsysvinit 0
telinitも可能です。しかし、このinittabが再び必要であり、Slackware 14.2(systemdなし)の停止/終了/再起動は説得力がありません。
これ/usr/bin/sysvinit「以前」initと同じサイズであり、内部には、GCC: (GNU) 4.9.2
および[email protected]
(名前を知っています!彼はsysvinitを書きました!)と書かれています。これがsysv-initです。名前を変更するだけです。パッケージでは /usr/bin/init と呼ばれます。
ああ、貧しいInit!こんなに押し寄せるんだ!
re:6:once:/sbin/reboot
これは起動時に使用するinittabですinit=/usr/bin/sysvinit
。 /sbin/rebootは...systemctlへのリンクです!まあ、それはうまくいきますが、それを続けるという言葉ではありません...(私は発明したものではありません。