重启的两种实现方式?

重启的两种实现方式?

为什么我的linux系统上似乎有两种reboot的实现?

# find . -name "reboot"
./etc/init.d/reboot
./sbin/reboot

答案1

/sbin/reboot 是实际的二进制文件,它实际上是停止守护程序的符号链接

$ls -la /sbin/reboot
lrwxrwxrwx 1 root root 4 Apr  6  2015 /sbin/reboot -> halt

暂停二进制文件的编码方式使得从命令行调用暂停或重新启动时行为有所不同。

/etc/init.d/reboot 实际上是关闭时在运行级别 6 中调用的脚本,方法是:

/etc/init.d/rc6.d/K10reboot

如你看到的:

$ ls -la /etc/rc6.d/K10reboot
lrwxrwxrwx 1 root root 16 Nov 14 18:19 /etc/rc6.d/K10reboot -> ../init.d/reboot

当使用 stop 选项调用时,实际的 /etc/init.d/reboot ,就像上面提到的 Kxx 符号链接一样,将重新启动二进制文件调用为

reboot -d -f -i

来自“男人重启”

-d     Don't write the wtmp record.
-i     Shut down all network interfaces just before halt or reboot.
-f     Force halt or reboot, don't call shutdown(8).

至于关于Kxxx脚本和运行级别6的注释,它们是Sys V init脚本的一部分。

请看这里的解释:

http://www.linuxvoodoo.com/resources/howtos/sysvinit

相关内容