Почему `init 0` приводит к «лишним аргументам» при установке Arch?

Используйте классы символов с отрицанием ([^ ]или [^[:space:]]), как показал Роман, или инвертируйте соответствие, как показано ниже . Какой из них лучше, зависит от окружающей конструкции.

$ cat foo.txt
with space
spaceless
$ sed '/ /d'  < foo.txt     # (d)elete the line on match
spaceless
$ sed -n '/ /!p' < foo.txt  # (p)rint if the pattern does not (!) match
spaceless
1
30.08.2017, 17:00
3 ответа

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

Вы собрали systemd без опции совместимости, поэтому поведение совместимости, описанное в руководстве, не будет присутствовать.

4
27.01.2020, 23:14

Насколько я могу судить по вашим символическим ссылкам, проблема именно в этом.

Если ваш 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

2
27.01.2020, 23:14

Есть лишний пакет "systemd -sysvcompat", и после этого можноsysvinit 0(и, возможно, telinit )-, но тогда вам снова понадобится этот inittab, и остановка/завершение работы/перезагрузка Slackware 14.2 (никакой systemd там )меня не убедил.

Этот /usr/bin/sysvinit имеет тот же размер, что и "старый" init, а внутри он читается как :GCC: (GNU) 4.9.2, иmiquels@cistron.nl(я знаю это имя! он написал сисвинит! ). Так что это IS sysv -init. Они просто должны были переименовать его. В пакете он называется /usr/bin/init.

Увы, бедный Инит! так толкают!


re:6:once:/sbin/reboot 

Это из моего inittab, который я использую при загрузке с init=/usr/bin/sysvinit. /sbin/reboot — это ссылка на... systemctl! Что ж, это работает, но я не говорю, продолжайте... (не мое изобретение, я нашел его таким, как установленный archlinux)

0
27.01.2020, 23:14

Теги

Похожие вопросы