Gra*_*ent 3 arch-linux systemd init runlevel
init 0我习惯了调用shutdown的老方法。不好,我知道;但是当我在新的 Arch 安装上尝试它时,我得到了这个:
# init 0
Excess Arguments
Run Code Online (Sandbox Code Playgroud)
这让我很困惑,因为我认为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
Run Code Online (Sandbox Code Playgroud)
# 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
Run Code Online (Sandbox Code Playgroud)
# 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)
Run Code Online (Sandbox Code Playgroud)