linux下的關機和重啟流程

2021-05-28 03:17:24 字數 825 閱讀 2472

linux下的關機和重啟流程

1.概述

在linux下的關機和重啟可能由兩種行為引發,一是通過使用者程式設計,一是系統自己產生的訊息。使用者和系統進行互動的方式也有兩個,乙個是系統呼叫:sys_reboot,另乙個就是apm或則acpi的裝置檔案,通過對其操作也可以使系統關機或者重啟。

2.通過系統呼叫sys_reboot的重啟

這個系統呼叫定義了一系列的magic_number,在呼叫的開始部分首先檢查magic_number是否正確,只有正確才繼續向下執行。在重啟的時候轉向分支

case linux_reboot_cmd_restart:

首先使用notifier_call_chain向其它部分發出重啟的訊息,然後呼叫machine_restart函式完成重啟。

machine_restart函式的開始部分有一段smp相關的**,主要完成多cpu時由乙個cpu完成重啟操作。

3.通過系統呼叫sys_reboot進行關機

在系統呼叫的處理分支上,我們可以看到,首先同樣是檢查magic_number,然後在

case linux_reboot_cmd_power_off:

的執行流程裡面,又是使用notifier_call_chain發出了關閉計算機電源的訊息,緊接著執行了machine_power_off函式。我們在machine_power_off函式中可以看到,如果pm_power_off這個函式指標不為空,那麼系統就會通過呼叫這個函式進行關機。在apm已經載入的情況下(smp除外),實際上pm_power_off函式實際上指向了apm.c中的apm_power_off,在這個函式裡系統通過apm_info結構裡的值,使用切換到實模式關機。

Linux 關機重啟流程分析

下的關機和重啟流程對於一般的桌面應用和網路來說並不重要,但是在使用者自己定義的系統核心中就有一定的研究意義,通過了解linux 關機重啟的流程,我們對它可以修改和自定義,甚至以此為基礎開發出全新的功能來。1.概述 在linux 下的關機和重啟可能由兩種行為引發,一是通過使用者程式設計,一是系統自己產...

Linux 關機重啟流程分析

1.概述 在linux下的關機和重啟可能由兩種行為引發,一是通過使用者程式設計,一是系統自己產生的訊息。使用者和系統進行互動的方式也有兩個,乙個是系統調 用 sys reboot,另乙個就是apm或則acpi的裝置檔案,通過對其操作也可以使系統關機或者重啟。2.通過系統呼叫sys reboot的重啟...

linux下的關機 重啟

關機 root使用者使用 shutdown h now 立刻關機 非root則會使用者報錯 shutdown h 5 5分鐘後自動關機 halt 直接使用等價於關機 如果是通過shutdown命令設定關機的話,可以用shutdown c命令取消重啟重啟 root使用者使用 reboot重啟系統 re...