在具有 systemd 的 debian stretch 上,可以使用 systemd 命令重新启动systemctl kexec
。
此外,systemd 处理所有重启:
# ls -l $(which reboot)
lrwxrwxrwx 1 root root 14 Jul 5 2017 /sbin/reboot -> /bin/systemctl
因为重新启动并完全初始化硬件需要很长时间,更重要的是需要输入加密密码,所以我宁愿总是使用 kexec 进行重新启动。
是否可以以使用 kexec 作为默认机制的方式配置 systemd reboot
?(除了替换/sbin/reboot
)
答案1
用 kexec 替换 reboot
删除或重命名 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”命令重新启动不起作用,因为通过 SysV init 包装器运行的 kexec-load 脚本不会加载 kexec 内核,除非以正确的方式调用。使用 kdump 可能不再有效。参考:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785714
取消一切
重新安装 systemd
apt install --reinstall systemd