Для выключения компьютера с Linux можно использовать командую строку, следующая команда выключит компьютер:
shutdown -h now systemctl halt
Для перезагрузки можно использовать такую команду:
systemctl restart
Обычно они работают нормально, но на некоторых дистрибутивах требуют повышенных прав, то есть их нужно запускать с sudo.
Но в однопользовательском режиме эти команды приводят к следующей ошибке:
System has not been booted with systemd as init system (PID 1). Can’t operate. Failed to connect to bus: Host is down Failed to talk to init daemon.
Однопользовательский режим Linux используется, например, для сброса забытого пароля пользователя root или любого другого пользователя. Работа компьютера в этом режим отличается от нормальной и, как можно увидеть из сообщения ошибки, система не была загружена с systemd как init системы, поэтому не получается подключиться к шине и неполучается отправить команды демону init.
Связанная статья: Как в Linux сбросить забытый пароль входа
Тем не менее, всё равно имеется способ выключить компьютер.
Для безопасного выхода наберите:
sync umount /
Эти команды дают указания ОС записать сделанные изменения на файловую систему (в целях оптимизации они могут храниться в кэше), а затем отмонтировать корневую файловую систему.
После этого чтобы выключить компьютер выполните:
poweroff -f
Или перезагрузите компьютер командой:
reboot -f
Если даже эти команды не помогли, то используйте варианты с двойной опцией -f.
Чтобы выключить компьютер выполните:
poweroff -f -f
Или перезагрузите компьютер командой:
reboot -f -f
Опция -f означает принудительную немедленную остановку, выключение или перезагрузку. При указании один раз это приводит к немедленному, но чистому завершению работы системным менеджером. Если указано дважды, это приводит к немедленному завершению работы без обращения к системному менеджеру.
При использовании опции -f с systemctl halt, systemctl poweroff, systemctl reboot или systemctl kexec выполняется выбранная операция, без выключения всех юнитов. Однако все процессы будут принудительно завершены, и все файловые системы будут отключены или перемонтированы только для чтения. Следовательно, это радикальный, но относительно безопасный вариант запроса немедленной перезагрузки. Если для этих операций дважды указать --force (за исключением kexec), они будут выполнены немедленно, без завершения каких-либо процессов или размонтирования каких-либо файловых систем. Предупреждение: указание --force дважды для любой из этих операций может привести к потере данных. Обратите внимание, что если дважды указать --force, выбранная операция выполняется самим systemctl, и с системным менеджером не связываются. Это означает, что команда должна выполняться даже в случае сбоя системного менеджера.
Связанные статьи:
- В чём разница между «systemctl reboot» и «reboot», а также «systemctl poweroff» и «poweroff» (99.7%)
- Как определить, какие службы нужно перезапустить (62.6%)
- Нужно ли перезапускать службы при обновлении пакетов (62.6%)
- Как сделать так, чтобы служба systemd перезапускалась в случае сбоя (РЕШЕНО) (58%)
- Как поменять менеджер отображения и экран входа в Linux (54%)
- Как в Linux определяется порядок источников для разрешения имён (приоритет файла hosts и DNS) (RANDOM - 50%)
Огромное вам спасибо! umount / и reboot -f помогли мне перезагрузиться 🙂