Ubuntu
如何在啟動時將腳本關聯到特定的執行級別?
我試圖了解執行級別是如何工作的。我了解 7 個執行級別的含義,並且我了解它們通常由 配置
/etc/inittab
,它曾經呼叫/etc/init.d/rc
,它本身呼叫各種腳本來配置不同的執行級別以及它們應該如何執行。現在我在一台 Ubuntu 伺服器機器(12.04)上,我看到該
inittab
文件不再使用,而是在/etc/init
目錄中找到腳本。現在假設我想在啟動時執行一個腳本(例如啟動一個應用程序)。通常我會這樣做編輯
/etc/init.d/rc.local
文件。我的問題來了:如果我編輯這個文件,這個腳本會在每個執行級別執行嗎?
例如,如果我希望腳本僅在執行級別 5 下工作,是否應該將此腳本放入
/etc/rc5.d/
文件夾中?還是有其他方法可以做到這一點?
好的,這就是我發現的:
最新的 Ubuntu 版本使用 upstart(正如@polemon 正確指出的那樣),它使用
/etc/init
目錄中的特定配置文件來配置腳本應該執行的執行級別。Upstart 將 upstart 作業文件放在/etc/init
文件夾中,並將普通的 init 腳本放在/etc/init.d
各種/etc/rc*.d
文件夾中,並且實際上能夠執行它們。不使用 upstart 的系統只使用
/etc/init.d
and/etc/rc*.d
。在這種情況下,設置執行級別,將符號連結添加到相應/etc/rc*.d
文件夾中的腳本。此外,顯然
rc.local
在多使用者執行級別執行腳本。
在 Ubuntu 中,這稱為Upstart。我建議您閱讀Cookbook,它討論瞭如何創建腳本以在特定(偽)執行級別執行。
您指的是“System V”初始化系統。這個想法是讓事情同時開始。我建議你看看
instance
Upstart 的功能。