除了升级内核之外,Linux系统是否需要重启?我知道有些情况下重新启动会让事情变得更容易,但除了重新启动之外,还有什么是无法实现的吗?
澄清一下:我正在考虑一个没有硬件故障的典型桌面或服务器系统.
解决方法:
有几件事情浮现在脑海中:
>从kernel panic恢复
根据定义,如果不重新启动内核,就无法恢复内核崩溃.
>从没有终端访问权限的挂起中恢复
如果系统没有响应并且您没有办法发出恢复命令,那么您可以做的唯一事情就是重新启动.通常,您需要避免手动电源循环.对于这些情况,Linux内核具有Magic SysRq支持,可用于在紧急情况下重启机器.
只要在内核配置中启用了CONFIG_MAGIC_SYSRQ选项,并且启用了kernel.sysrq sysctl
选项,就可以使用魔术SysRq组合键直接向内核发出命令:
请注意,下面的Alt SysRq表示按住Alt键,然后按住SysRq(通常是PrintScrn键).
> Alt SysRq r:重新获得键盘控制权
> Alt SysRq e:将SIGTERM发送到除init之外的所有进程,使他们有机会正常终止
> Alt SysRq i:将SIGKILL发送到除init之外的所有进程,强制它们终止
> Alt SysRq s:尝试同步所有已安装的文件系统
> Alt SysRq u:将所有文件系统重新装入只读状态
> Alt SysRq b:重启,或
Alt SysRq o:关机
用于尝试正常重启的神奇SysRq组合键的助记符是:
“即使系统完全破坏也会重新启动”
对于无头服务器,甚至还有一个iptables target通过网络启用远程SysRq序列.
>从无法启动的状态恢复
如果系统已进入无法正常启动的状态(例如,由于系统升级失败,文件系统损坏等),则访问系统上恢复控制台的唯一方法可能是重启使用适当的启动时选项.
>更改启动时内核参数
某些kernel parameters(例如,启用/禁用内核审计的审计)只能在启动时加载内核时设置.