Archのインストール中に「init 0」が原因で「超過パラメータ」が表示されるのはなぜですか?

Archのインストール中に「init 0」が原因で「超過パラメータ」が表示されるのはなぜですか?

私は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リンクがシンボリックリンクである場合は、systemdsystemdが引数で何を取得できるかを確認する必要があります。

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 0telinitも可能です。しかし、この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へのリンクです!まあ、それはうまくいきますが、それを続けるという言葉ではありません...(私は発明したものではありません。

関連情報