2012-04-18 125 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脚本的东西的链接。或相反亦然。