В Debian Stretch с systemd можно выполнить перезагрузку с помощью команды systemd systemctl kexec
.
Кроме того, systemd обрабатывает все перезагрузки:
# ls -l $(which reboot)
lrwxrwxrwx 1 root root 14 Jul 5 2017 /sbin/reboot -> /bin/systemctl
Поскольку перезагрузка с полной повторной инициализацией оборудования занимает много времени и, что еще важнее, требует ввода криптографической парольной фразы, я бы предпочел всегда использовать kexec для перезагрузок.
Можно ли настроить systemd таким образом, чтобы использовать kexec в качестве reboot
механизма по умолчанию? (Помимо замены /sbin/reboot
)
решение1
Заменить перезагрузку для kexec
Удалить или переименовать цель перезагрузки systemd
rm /lib/systemd/system/reboot.target
Создайте ссылку на цель kexec как цель перезагрузки
ln -sf /etc/systemd/system/kexec.target /lib/systemd/system/reboot.target
Перезагрузить
systemctl демон-перезагрузка
Обратите внимание, что systemd и kexec поддерживают только один способ перезагрузки — с помощью
systemctl kexec
Перезагрузка через команду "reboot" не работает, так как скрипт kexec-load, запущенный через оболочку SysV init, не загружает ядро kexec, если не вызван правильно. Использование kdump может перестать работать. Ссылка:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785714
Отменить все
Переустановить systemd
apt install --reinstall systemd