目录:
Linux 关机和重启机制
一.sys_reboot
二.apm capi
Linux下的关机和重启可能由两种行为引发,一是通过用户编程,另外一种是系统自己产生的信息。用户和系统进行交互的方式有两种,一种是系统调用sys_reboot,另外一个则是apm或者acpi的设备文件,通过对其操作也可以是系统关机或者重启。
一.sys_reboot
linux下关机和重启命令主要有,shutdown,reboot,halt,poweroff,telinit,和init。对于
poweroff和reboot是halt的符号链接,不过最终都调用reboot系统调用来完成关机和重启操作,该部分代码在kernel/sys.c中。
在调用sys_reboot时,应该注意一点,
reboot doesn't sync: do that yourself before calling this.
所以在使用之前应该手动sync命令同步磁盘。
该函数流程如下,
i) 检查调用者是否有合法调用reboot