我有一个远程服务器,运行 Linux 5.19.0-41-generic x86_64,我正在尝试重新启动它。
我收到以下消息
sudo reboot
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.
sudo init 6
Couldn't find an alternative telinit implementation to spawn.
PID 1 进程是 bash。
ps -p 1 -o comm=
bash
显然,没有 GRUB,至少 /usr/sbin 中没有,并且
grub-install --version
-bash: grub-install: command not found
我猜测,启动时没有使用 GRUB。
它似乎不是虚拟机。我检查了一些文件。它似乎在裸机上运行。但配置很少:top 只显示少数进程,如果我需要更全面的功能,ssh 会提示我“取消最小化”。
我倾向于认为使用了 SysV:
ls /etc/init.d
apport bluetooth hwclock.sh network-manager procps rsync udev
avahi-daemon dbus iwpmd nfs-common pulseaudio-enable-autospawn saned unattended-upgrades
binfmt-support gdm3 kmod pppd-dns rpcbind ssh x11-common
但:
runlevel
unknown
并且 /etc/inittab 不存在。
sudo shutdown -r now
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.
Q1:我如何确定我的系统是用什么启动的?
Q2:如何重新启动它?
对于 Q2,如果我可以使用 systemd 重新启动它就太好了。
答案1
尝试使用这些命令。您应该以 root 用户身份按照相同的顺序运行这些命令:
echo 1 > /proc/sys/kernel/sysrq
echo o > /proc/sysrq-trigger
如果您的系统无法通过上述命令关闭。请尝试以下操作:
echo 1 > /proc/sys/kernel/sysrq
echo s > /proc/sysrq-trigger
sleep 25
echo b > /proc/sysrq-trigger