Por que o 'init 0' resulta em “Excess Arguments” na instalação do Arch?

1

Estou acostumado com o método antigo de chamar init 0 para o desligamento. Mau, eu sei; mas quando eu tentei na minha nova instalação do Arch eu recebo isto:

# init 0
Excess Arguments

Isso me confunde porque achei que systemd deveria suportar os níveis de execução? Olhando para a página man, menciona isto:

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.

Estou usando apenas a sintaxe incorreta ou entendi completamente systemd ?

Mais informações de inicialização / 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

Informações gerais do sistema

# 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) 
    
por Grayson Kent 30.08.2017 / 16:00

2 respostas

4

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

Você criou o systemd sem a opção de compatibilidade, portanto, o comportamento de compatibilidade descrito no manual não estará presente.

    
por 30.08.2017 / 16:39
2

Bem, até onde posso ver nos seus links simbólicos, esta é a questão.

Se o seu init é um link simbólico para systemd , então você precisa ver o que o systemd pode obter como argumento.

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

Então, a coisa é que você realmente não tem o% realinit, mas apenas um systemd

vinculado

Espero que ajude

    
por 30.08.2017 / 16:09