Linux

重啟的兩種實現?

  • May 12, 2017

為什麼在我的 linux 系統上似乎有兩種重啟的實現?

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

/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 初始化腳本的一部分。

請在此處查看說明:

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

引用自:https://unix.stackexchange.com/questions/250053