2012-04-18 129 views
0

我對如何在Linux中執行重啓有興趣。當我按下ctrl-alt-del或在菜單欄中點擊「重新啓動」時,接下來會發生什麼?linux重啓的詳細步驟

謝謝!

回答

1

以安全的方式關閉系統。系統正在關閉所有登錄用戶,並且登錄(1)被阻止。可以立即關閉系統或在指定的延遲後關閉系統。首先通知所有進程系統正在通過SIGTERM信號關閉。 它通過發信號通知init進程來完成它的工作,並要求它改變運行級別。運行級別0用於暫停系統,運行級別6用於重新啓動系統,運行級別1用於將系統置於可執行管理任務的狀態; 所以基本上重啓調用「關機」。

0

快速回答是執行/etc/rc6.d中的所有腳本。

使用「stop」參數執行以「K」開頭的腳本。使用「start」參數執行以「S」開頭的腳本 。

欲瞭解更多,你可以從這裏開始閱讀有關運行級別:http://en.wikipedia.org/wiki/Runlevel

0

Linux上有不同的init系統,他們也控制在重新啓動/關機發生了什麼。請參閱https://unix.stackexchange.com/questions/18209/detect-init-system-using-the-shell以瞭解您正在使用的內容。

如果您使用的是SysVinit,則會有一個與整個系統狀態相關的runlevel。 init系統將首先運行與當前運行級別相關的所有終止腳本,然後運行與運行級別6相關的啓動腳本。如果當前運行級別爲5,它將運行/etc/rc5.d/K*,然後運行/ etc/rc6 .D/S *。它們可能位於另一個目錄中,如/etc/init.d/rc5.d/k*,具體取決於您的Linux發行版。

如果您使用的是systemd,那麼將不會有一個全面的「運行級別」,而會有一個定義的目標和服務的列表。目標列表本質上是一個運行級別。這些在/ etc/systemd下的.service和.target文件中定義。在那裏可能會定義一個「rebo​​ot.target」,其他服務依賴於該服務將在重新啓動時運行。以the systemd homepagestackexchange question爲例。

一些Ubuntu版本也使用暴發戶,但我認爲它已被更新版本中的systemd所取代。如果您使用新貴,請參閱this guidethis askubuntu question

需要注意的一件事是,無論您使用的是哪個init系統,都可能使用通常與另一個init腳本關聯的init腳本。所以你可能會使用sysVinit,但是一些rc * .d腳本可能是調用systemd腳本的東西的鏈接。或相反亦然。