Arch-Linux – Why Does `init 0` Result in ‘Excess Arguments’ on Arch Install?

arch linuxinitrunlevelsystemd

I am used to the old method of calling init 0 to shutdown. Bad, I know; but when I tried it on my new Arch install I get this:

# init 0
Excess Arguments

This confuses me because I thought systemd was supposed to support run levels? Looking at the man page, it mentions this:

For compatibility with SysV, if systemd is called as init and a PID
that is not 1, it will execute telinit and pass all command line
arguments unmodified. That means init and telinit are mostly
equivalent when invoked from normal login sessions. See telinit(8) for
more information.

Am I just using the wrong syntax or have I completely misunderstood systemd?

More Init/Systemd Information

# 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

General System Info

# 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) 

Best Answer

For compatibility with SysV, […]
systemd 234
[…] -SYSVINIT […]

You've built systemd without the compatibility option, so the compatibility behaviour described in the manual is not going to be present.

Related Question