跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

学习 Linux, 101: 运行级别、关机和重新启动

使您的系统起死回生

Ian Shields, 高级程序员, IBM
Ian Shields
Ian Shields 参与 developerWorks Linux 专区的许多 Linux 项目。他是 IBM 北卡罗来纳州 Research Triangle Park 的一名高级程序员。他于 1973 年作为一名系统工程师加入 IBM 位于澳大利亚堪培拉的子公司。此后,在加拿大蒙特利尔和北卡罗来纳州 RTP 从事通信系统和普适计算。他拥有多项专利并发表了许多论文。他毕业于 Australian National University,取得纯数学和哲学学位。他拥有北卡罗来纳州州立大学的计算机硕士和博士学位。

简介: 学习关闭或重启您的 Linux 系统,警告用户系统正在关闭,切换到一个多少有点限制性的运行级别。您可以使用本文中的资料来准备 Linux 系统管理员认证的 LPI 101 考试,或者只研究关机、重新启动以及改变运行级别。

查看本系列更多内容

发布日期: 2011 年 1 月 31 日
级别: 中级 原创语言: 英文
访问情况 : 8556 次浏览
评论: 


关于本系列

本系列文章帮助您了解 Linux 系统管理任务相关知识。您可以使用本系列文章的资料准备 Linux Professional Institute Certification 级别 1(LPIC-1)考试

参见我们的 学习 Linux,101:LPIC-1 路线图,查看本系列中各篇文章的介绍和链接。路线图目前仍在更新中,目前反映的最新内容是 LPIC-1 考试的最新目标(2009 年 4 月):在我们完成文章后,我们会将其添加到路线图中。但是,与此同时,您可以在我们的 LPI 认证考试准备教程 中找到类似材料的早期版本,这些内容支持 2009 年 4 月以前发布的 LPIC-1 目标。

概述

在本文中,学习关闭或重启您的 Linux 系统,警告用户系统正在关闭,请切换到单用户模式或者一个多少有点限制性的运行级别。学习:

  • 设置默认运行级别
  • 运行级别间的变化
  • 改为单用户模式
  • 从命令行关闭或重启系统
  • 警告用户主要系统事件,包括切换到另一个运行级别
  • 适当地终止进程

除非特殊说明,本文中的示例使用带有 2.6.26 内核的 Fedora 8。upstar 示例使用的是带有 2.6.34 内核的 Fedora 13,或者是带有 2.6.35 内核的 Ubuntu 10.10。您的结果在其他系统上可能有所不同。

本文帮助您准备 Linux Professional Institute's Junior Level Administration(LPIC-1)考试 101 中主题 101 下的目标 101.3。该目标的权值为 3。

先决条件

为了最有效地利用本系列中的文章,您应该具有基本的 Linux 知识,并需要准备一个 Linux 系统,用于练习本文介绍的命令。有时候不同版本的程序输出格式不同,因此您所得到的结果未必总是与这里所示的清单和图相同。特别是,最近出现的系统已经改变了很多传统 System V init 进程用户所熟悉的内容(更多细节见 Init vs. Upstart)。本文是针对传统 System V init 进程的,只对 upstar 的区别进行了粗略的概述。


运行级别

联系 Ian

Ian 是我们最受欢迎、最高产的作者之一。阅读 Ian 在 developerWorks 上的所有文章。查看 Ian 的个人信息,与 Ian、其他作者和 My developerWorks 的其他读者联系。

运行级别 定义了在 Linux 系统的当前状态(或运行级别)可以完成的任务。每个 Linux 系统支持 3 个基本运行级别,外加一个或多个用于正常操作的运行级别。基本运行级别如 表 1 所示。


表 1. 表 1. Linux 基本运行级别
级别目的
0关闭(或终止)系统
1单用户模式:通常又称为 sS
6重启系统

除了这些基本的运行级别之外,各个发行版之间的运行级别使用也有所不同。一个命令使用集合如 表 2 所示。


表 2. 表 2. 其他命令 linux 运行级别
级别目的
2没有网络的多用户模式
3有网络的多用户模式
5有网络和 X Window System 的多用户模式

Slackware 发布版使用运行级别 4 而不是 5,因为整个系统正运行 X Window 系统。Debian 及其衍生产品,比如 Ubuntu,对于任何多用户模式都使用单个运行级别,通常是运行级别 2。务必查阅您版本的文档。


默认运行级别

当一个 Linux 系统启动时,默认运行级别由 /etc/inittab 下的 id: 条目确定。 清单 1 说明了一个系统(比如 Fedora 8 或 openSUSE 11.2)典型条目,这两个系统都是为 X Window System 使用运行级别 5。


清单 1. 清单 1. /etc/inittab 中的默认运行级别
				
[root@pinguino ~]# grep "^id:" /etc/inittab
id:5:initdefault:

如果您想要您的系统以不同的运行级别启动,比如说运行级别 3,编辑该值。


改变运行级别

有好几种方法可以改变运行级别。为了进行一个永久的改变,您可以编辑 /etc/inittab 并改变默认运行级别,正如您刚才在上面看到的。

如果您只需要在一次引导中将您的系统提升到一个不同的运行级别,您可以这样做。例如,假设您刚刚安装了一个新内核,在使用新内核重启系统后需要建立一些内核模块,但是应该在启动 X Window System 之前。您可能想要将您的运行级别提升为级别 3 来完成这一任务。您可以通过编辑内核线(GRUB)或在选择的系统名后(LILO)添加一个参数来在引导时进行这一操作。使用一个一位数来指出期望的运行级别(在这里是 3)。我们将通过一个 GRUB 实例来介绍具体过程。假设您的 /boot/grub/menu.lst 文件含有 清单 2 所示的片段。


清单 2. 清单 2. 启动 Fedora 8 的典型 GRUB 片段
				
       
title Fedora (2.6.26.8-57.fc8)
        root (hd0,5)
        kernel /boot/vmlinuz-2.6.26.8-57.fc8 ro root=LABEL=FEDORA8 rhgb quiet
        initrd /boot/initrd-2.6.26.8-57.fc8.img

要想让系统升级到运行级别 3,等待直至引导项出现,选择这个条目然后输入 ‘e’ 来编辑这个条目。根据您的 GRUB 选项,您可能需要按下一个键来显示引导项,然后也输入一个 ‘p’ 和一个密码来解锁编辑。Fedora 8 系统上 GRUB 屏幕看起来像 图 1 这样。


图 1. 图 1. 在 GRUB 中选择一个引导选项
在 GRUB 中选择一个引导选项

在这个示例中,您现在应该可以看到以 root、kernel、initrd 开始的行出现。将光标移动到以 “kernel” 开始的行,然后输入 ‘e’ 来编辑这一行。Fedora 8 系统上的 GRUB 屏幕现在如 图 2 所示。


图 2. 图 2. 选择内核项进行编辑
选择内核项进行编辑

最后将光标移动到这一行的末尾,然后添加一个空格和数字 ‘3’。如果需要的话您可以删除 ‘quiet’,或者根据需要修改任何其他参数。Fedora 8 系统上的 GRUB 屏幕现在如 图 3 所示。


图 3. 图 3. 设置启动运行级别为 3
设置启动运行级别为 3

最后,按下 Enter 键来保存修改,然后输入 ‘b’ 来引导系统。

注意: 使用 LILO 或 GRUB2 和使用 GRUB 的步骤有所不同,但是编辑内核启动方法的基本原理是一样的,即使其他系统或其他版本上的 GRUB 界面和这里所显示的界面大不相同。提示信息通常会对您有所帮助。

当您在运行级别 3 下完成了您的安装工作时,您可能想要切换到运行级别 5。幸运的是,您不需要重启系统。您可以使用 telinit 命令来切换到另一个运行级别。使用 runlevel 命令可以显示之前和目前的运行级别。如果输出的一个字符是 ‘N’,运行级别还不能改变,因为系统正在被引导。 清单 3 显示了验证和更改运行级别。


清单 3. 清单 3. 验证和更改运行级别
				
[root@pinguino ~]# runlevel
N 3
[root@pinguino ~]# telinit 5
			

输入 telinit 5 之后您将看到几个消息一闪而过,您的界面将切换到已配置的图形化登录界面。打开一个终端窗口,然后验证运行级别是否已经修改,如 清单 4 所示。


清单 4. 清单 4. 确认新的运行级别
				
[root@pinguino ~]# runlevel
3 5

如果您使用 ls 命令来显示一个很长的 telinit 命令清单,您将看到它实际上是一个链接到 init 命令的符号链接。我们将在 清单 5 中对此作一说明。


清单 5. 清单 5. telinit 只是一个链接到 init 的符号链接
				
[root@pinguino ~]# ls -l $(which telinit)
lrwxrwxrwx 1 root root 4 2008-04-01 07:50 /sbin/telinit -> init

可执行文件 init 知道它是否称为 inittelinit,然后进行相应调整。因为 init 作为 PID 1 在引导时运行,它也非常智能,知道您随后什么时候会使用 init 调用它,而不是使用 telinit。如果您这样做了,它就会假设您希望它表现得像已经调用了 telinit。例如,您可能会使用 init 5 而不是 telinit 5 来切换到运行级别 5。


单用户模式

相比个人电脑操作系统,比如 DOS 或 Windows,Linux 本身是一个多用户系统。然而,有时候这可能会成为一个问题,比如,当您需要恢复一个重要文件系统或者数据库时,或者安装和测试某个新软件时。运行级别 1,单用户模式 是您在这些情况下的最佳答案。实际实现根据不同版本有所变化,但是您通常只使用一个很小的系统简单地启动。通常这里没有联网,没有(或者非常少)守护进程运行。在一些系统上,您必须通过登录来进行认证,但在其他系统上您可以直接以根用户开始操作 shell 提示符。单用户模式可能是一个救生圈,也可能是毁坏您的系统,因此,不管任何时候,当您使用根用户权限时都应该小心注意。完成后立即重新启动到一个正常多用户模式。

和切换到正常多用户运行级别一样,您也可以使用 telinit 1 切换到单用户模式。正如 表 1 所述,‘s’ 和 ‘S’ 是运行级别 1 的别名,因此您可以使用 telinit s 来代替。


干净关闭

您可以使用 telinitinit 来停止多用户活动,然后切换到单用户模式,这可能有点突然,可能会导致用户丢失作业和进程异常终止。关闭或重启系统首选方法是使用 shutdown 命令,这首先会向所有登录的用户发送一个警告,并限制进一步登录,然后发送 init 信号来切换运行级别。init 进程然后发送给所有正在运行的进程一个 SIGTERM 信号,给它们保存数据的时间或让他们自己结束进程。5 秒(如果指定了延迟时间的话,可能是其他延迟时间)后,init 发送一个 SIGKILL 信号来强制结束还在运行的进程。

默认情况下,shutdown 切换到运行级别 1(单用户模式)。您可以指定 -h 来暂停系统,或者 -r 选项重新启动。除了您指定的消息外标准消息也被公布。时间可能是指定为绝对时间,以 hh:mm 格式,或者也可能是相对时间,以 n 格式,其中 n 是距关机的分钟数。对于即刻关机,使用 now,这等价于 +0

如果您发布了一个延迟关机,而时间还没有到,如果您想取消关机,如果命令行正在前端运行按 Ctrl-c 键,或者通过发布一个带有 -c 选项的 shutdown 命令来取消即将进行的关机。 清单 6 显示了几个使用 shutdown 命令的示例,以及撤销这一命令的方法。


清单 6. 清单 6. 关机示例
				
[root@pinguino ~]# shutdown 5 File system recovery needed

Broadcast message from root (pts/1) (Tue Jan  4 08:05:24 2011):

File system recovery needed
The system is going DOWN to maintenance mode in 5 minutes!
^C
Shutdown cancelled.
[root@pinguino ~]# shutdown -r 10 Reloading updated kernel&
[1] 18784
[root@pinguino ~]#
Broadcast message from root (pts/1) (Tue Jan  4 08:05:53 2011):

Reloading updated kernel
The system is going DOWN for reboot in 10 minutes!

[root@pinguino ~]# fg
shutdown -r 10 Reloading updated kernel
^C
Shutdown cancelled.
[root@pinguino ~]# shutdown -h 23:59&
[1] 18788
[root@pinguino ~]# shutdown -c

Shutdown cancelled.
[1]+  Done                    shutdown -h 23:59

您可以已经注意到了,我们最后一个例子没有发送一个警告消息。如果关机时间超过了 15 分钟,这个消息将不被发送,直到 清单 7 所示活动前 15 分钟。 清单 7 也显示了 -t 选项的使用,将 SIGTERM 和 SIGKILL 信号间的默认延迟增加 5 秒到 60 秒。


清单 7. 清单 7. 另一个关机示例
				
[root@pinguino ~]# date;shutdown -t60 17 Time to do backups&
Tue Jan  4 08:12:55 EST 2011
[1] 18825
[root@pinguino ~]# date
Tue Jan  4 08:14:13 EST 2011
[root@pinguino ~]#
Broadcast message from root (pts/1) (Tue Jan  4 08:14:55 2011):

Time to do backups
The system is going DOWN to maintenance mode in 15 minutes!

如果您取消了一次关机,您可以使用 wall 命令来向所有用户发送一个警告,通知他们实际上系统不会即将关闭。

正如我们之前所介绍的,也可以使用 telinit(或 init)来关闭或重启系统。和 telinit 的其他用法一样,不向用户发送警告消息,命令立即生效,尽管在 SIGTERM 和 SIGKILL 信号之间仍然有延迟。对于 telinitinitshutdown 的其他选项,请查阅手册页。


Halt、reboot 和 poweroff 命令

您已经知道了一些关于关机和重新启动的命令。

  • halt 命令暂停系统。
  • poweroff 命令是一个链接到 halt 命令的符号链接,暂停系统然后试图关掉电源。
  • reboot 命令是另一个连接到 halt 命令的符号链接,暂停系统然后重新启动。

当系统的运行级别不是 0 或 6 时,如果调用这些命令其中之一,相应的 shutdown 命令将被代替调用。

对于这些命令的其他选项,以及关于其操作的详细信息,请参阅手册页。


/etc/inittab

到目前为止,您可能想知道,为什么在有些系统上需要按 Ctrl-Alt-Delete 键来重新启动,或者这个运行级别设置是如何配置的。记得 /etc/inittab 中的 id 字段吗?当然,/etc/inittab 中还有其他字段,而且其中的一些目录下(比如 rc1.d 或 rc5.d )还有一系列 init 脚本,其中数字就是在那个目录下脚本所应用的运行级别。 清单 8 显示了我们的 Fedora 8 系统上一个完整的 inittab。


清单 8. 清单 8. Fedora 8 上的完整 inittab
				
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"


# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon

和往常一样,以 # 开始的是注释,其他行有几个以如下格式表示的字段:
id:runlevels:action:process

id
是一个惟一标识符,由 1~4 个字符构成。旧版本限制为 2 个字符,因为您通常会看到只使用 2 个字符。
runlevels
列出针对该 id 的活动应该操作的运行级别。如果没有列出任何运行级别,在所有运行级别下执行这一操作。
action
描述几个可能执行的操作
process
当操作在这个线路上被执行时,告知哪个进程应该运行,如果有的话。

在 /etc/inittab 中可能指定的一些常见操作,如 表 3 所示。关于 inittab 的其他可能性见手册页。


表 3. 表 3. 一些常见的 inittab 操作
操作目的
respawn在进程终止时重启进程。通常用于 getty 进程,该进程用于监控登录。
wait当特定运行级别输入后立即启动进程,等待终止直至 init 开始运行。
once当特定运行级别输入后立即启动进程。
initdefault指定系统引导之后要输入的运行级别。
ctrlaltdel当 init 接收到 SIGINT 信号后执行相关进程,比如,有人在系统控制台上按了 CTRL-ALT-DEL。

清单 9 只显示了 清单 8 中针对 Ctrl-Alt-Delete 的条目。现在,您明白了为什么按 Ctrl-Alt-Delete 键会导致系统重新启动。


清单 9. 清单 9. 捕获 Ctrl-Alt-Delete
				
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now


初始化脚本

您可能会注意到 清单 8 中的这几行,比如

l5:5:wait:/etc/rc.d/rc 5

在本例中,不管输入的运行级别是不是 5,init 将使用参数 5 运行 /etc/rc.d/rc 脚本(或命令)。init 将等待直至该命令完成,然后再执行其他操作。

启动系统、修改运行级别或关机时 init 使用的那些脚本通常存储在 /etc/init.d 或 /etc/rc.d 目录下。rcn.d 目录下的一系列符号链接,每个运行级别 n 有一个目录,控制当输入一个运行级别时脚本是否启动,或当离开时脚本是否停止。这些链接以一个 K 或一个 S 开头,紧接着是一个 2 位数的数字,然后是服务名,如 清单 10 所示。


清单 10. 清单 10. Init 脚本
				
[root@pinguino ~]# find /etc -path "*rc[0-9]*.d/???au*"
/etc/rc.d/rc2.d/S27auditd
/etc/rc.d/rc2.d/K72autofs
/etc/rc.d/rc4.d/S27auditd
/etc/rc.d/rc4.d/S28autofs
/etc/rc.d/rc5.d/S27auditd
/etc/rc.d/rc5.d/S28autofs
/etc/rc.d/rc0.d/K72autofs
/etc/rc.d/rc0.d/K73auditd
/etc/rc.d/rc6.d/K72autofs
/etc/rc.d/rc6.d/K73auditd
/etc/rc.d/rc1.d/K72autofs
/etc/rc.d/rc1.d/K73auditd
/etc/rc.d/rc3.d/S27auditd
/etc/rc.d/rc3.d/S28autofs
[root@pinguino ~]# cd /etc/rc.d/rc5.d
[root@pinguino rc5.d]# ls -l ???a*
lrwxrwxrwx 1 root root 16 2008-04-07 11:29 S27auditd -> ../init.d/auditd
lrwxrwxrwx 1 root root 16 2008-04-01 07:51 S28autofs -> ../init.d/autofs
lrwxrwxrwx 1 root root 15 2008-04-01 14:03 S44acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root 13 2008-04-01 07:50 S95atd -> ../init.d/atd
lrwxrwxrwx 1 root root 22 2008-04-01 07:54 S96avahi-daemon -> ../init.d/avahi-daemon
lrwxrwxrwx 1 root root 17 2008-11-17 13:40 S99anacron -> ../init.d/anacron

您可以看到在所有运行级别下 auditautofs 服务有 Knn 个条目,运行级别 3 和 5 下有 Snn 个条目。S 表示当输入运行级别时服务已启动,而 K 表示服务应该停止。链接名称的 nn 部分表示服务启动或暂停的优先级别。在该示例中,auditautofs 之前启动,且在其后停止。

参阅手册页,了解关于 initinittab 的更多信息。


Init vs. Upstart

正如我们所看到的,传统的引导 Linux 系统方法是基于 UNIX System V init 进程的。它涉及到加载一个初始 RAM 磁盘(initrd),然后将控件传给一个名为 init 的程序,通常作为 sysvinit 包的一部分安装的一个程序。init 程序然后以预先定义的顺序运行一系列脚本来启动系统。如果预期的一些信息不可用,init 进程会等待直至可用。而这对于在系统启动时一切都是已知且连接的系统来说很适合,带热插拔设备的系统、网络文件系统、甚至在启动时不能使用的网络接口都面临着新的挑战。的确,等待可能很长时间内都不可用的硬件,或者就算是相对较长的时间,都不是很理想。

另一个初始化进程 upstart 是在 2006 年 Ubuntu 6.10 ("Edgy Eft") 中第一次引入。目前在 Ubuntu 和 Fedora,还有其他系统中已经取代了 init 进程,尽管依然有 init 的痕迹,upstart 的强大功能在一段时间内可能还没有被意识到。

相比早期系统中所用的 init 脚本的静态集合,upstart 系统是事件 驱动的,事件可能被硬件改动触发,也可被启动或关机或任务所触发,或者也可能被系统上的任何其他进程所触发。事件用于触发任务服务,统称为作业。因此,比如连接到一个 USB 驱动器可能导致 udev 服务发送一个 block-device-added 事件,这可能引起一个预定任务检查 /etc/fstab 和挂载驱动器(如果需要的话)。再如,一个 Apache web 服务器可能只有当网络和所需的文件系统都可用时才能启动。

upstart 初始化程序代替了 /sbin/init。Upstart 作业在 /etc/init 目录及其子目录下被定义。upstart 系统目前将处理 /etc/inittab 和 System V init 脚本。在诸如近来的 Fedora 版本的系统上,/etc/inittab 可能只含有 initdefault 操作的 id 项。目前 Ubuntu 系统默认没有 /etc/inittab,如果您想要指定一个默认运行级别的话,您可以创建一个。

Upstart 也使用 initctl 命令来支持与 upstart init 守护进程的交互。这时您可以启动或终止作业、列表作业、以及获取作业的状态、发出事件、重启 init 进程,等等。 清单 11 显示了如何使用 initctl 来获取 Fedora 13 系统上的一个 upstart 作业列表。


清单 11. 清单 11. 使用 initctl 与 upstart init 守护进程交互
				
[ian@echidna ~]$ initctl list
rc stop/waiting
tty (/dev/tty3) start/running, process 1486
tty (/dev/tty2) start/running, process 1484
tty (/dev/tty6) start/running, process 1492
tty (/dev/tty5) start/running, process 1490
tty (/dev/tty4) start/running, process 1488
plymouth-shutdown stop/waiting
control-alt-delete stop/waiting
system-setup-keyboard start/running, process 1000
readahead-collector stop/waiting
vpnc-cleanup stop/waiting
quit-plymouth stop/waiting
rcS stop/waiting
prefdm start/running, process 1479
init-system-dbus stop/waiting
ck-log-system-restart stop/waiting
readahead stop/waiting
ck-log-system-start stop/waiting
start-ttys stop/waiting
readahead-disable-services stop/waiting
ck-log-system-stop stop/waiting
rcS-sulogin stop/waiting
serial stop/waiting

想要了解更多关于 upstart 的信息,见 参考资料

对运行级别、关机和重新启动的介绍到此结束。


参考资料

学习

获得产品和技术

讨论

关于作者

Ian Shields

Ian Shields 参与 developerWorks Linux 专区的许多 Linux 项目。他是 IBM 北卡罗来纳州 Research Triangle Park 的一名高级程序员。他于 1973 年作为一名系统工程师加入 IBM 位于澳大利亚堪培拉的子公司。此后,在加拿大蒙特利尔和北卡罗来纳州 RTP 从事通信系统和普适计算。他拥有多项专利并发表了许多论文。他毕业于 Australian National University,取得纯数学和哲学学位。他拥有北卡罗来纳州州立大学的计算机硕士和博士学位。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Linux
ArticleID=620280
ArticleTitle=学习 Linux, 101: 运行级别、关机和重新启动
publish-date=01312011
author1-email=ishields@us.ibm.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。