快捷搜索:   nginx

用红帽子的chkconfig管理Init脚本

by Jimmy Ball
翻译:Feng Dahui
[email protected]
2001.12.11

你的管理工具中多了个简单但非常有用的东东。


我喜欢发现新的UNIX 命令,尤其是那些关于系统管理的。当我得知红帽子发布chkconfig 这个工具,我想起了在IRIX--一个从 Silicon Graphics Inc.而来的UNIX变种--下的 chkconfig。 IRIX的chkconfig被用来激活/禁止系统初始化的时候的服务,无需编辑,重命名或是移动 /etc中的init脚本。

类似,Red Hat设计chkconfig的目的就是用来管理系统初始化的时候启动的服务。不过,在我仔细阅读手册并作了些测试后,我很快发现Red Hat扩展了chkconfig,通过管理init脚本的符号连接得以最终控制启动关闭时的系统任务,真是节省时间!


关于启动的基础知识
------------------

当你的linux启动时, 它显示的第一个进程是 init。如果你以前没看到过显示init进程, 输入:

# ps -ef | grep init

就会看到init的PID。 简而言之,init 运行 /etc/inittab中描述的任务。

/etc/inittab中说明的任务在init之后就会启动, 不过其它的任务启动很简单。例如,默认情况下 Red Hat 的/etc/inittab 对Ctrl-Alt-Delete键序设置了一个陷阱(trap),当这些键在控制台模式下(不是xdm)同时按下 ,就会运行 shutdown 命令。 在启动的时候, init基于/etc/inittab 的设置选项设定这个特性,不过在这个键序发生的时候才会执行。

inittab 的格式允许以``#''开始注释行,正常的条目用 ``:'' 界定。遵从如下的格式:

id:runlevel:action:process

id 代表用户定义的唯一的标志,
runlevel 可以使0-6的组合 或者为空,
action 来自一个关键词keyword 描述init如何对待process,
process 是要执行的命令。


描述action字段的各种关键字可以在inittab的手册中找到。常用的关键字, 不是全部, UNIX 平台包括这些:

initdefault--定义一个系统启动后进入的运行级
wait --会被执行一次的进程 (当进入运行级的时候)。init 进程将等待这个进程被终止。
boot --定义一个启动的时候执行的进程.
bootwait --与 boot 类似 ,不过 init在继续运行前等待进程的终止
sysinit --定义一个进程在 boot的时候执行,在任何 boot或者bootwait inittab 条目的前面执行。

runlevel 字段指明系统状态。例如,运行级0代表系统关机,运行级6代表系统重启 。不幸的事,不是所有的 Linux 发布都遵循同样的运行级定义 。在Red Hat中,默认情况下支持下面这些

0. 系统挂起
1. 但用户Single-user mode
2. 多用户,没有NFS
3. 完整的多用户Complete multiuser mode
4. 用户自定义
5. X11 (XDM 登录)
6. 重新启动

每一个运行级在 /etc/rc.d下都有个相应的目录。如运行级5,目录就是/etc/rc.d/rc5.d 。包含启动这个运行级的时候运行的相关任务的相关文件。在 Red Hat中, 这些文件一般都是 shell 脚本的符号连接,可以在/etc/rc.d/init.d中找到。

让我们用一个简单的例子看一下这些东西, 下面这两个例子行来自我们的 inittab文件:


id:3:initdefault:
l3:3:wait:/etc/rc.d/rc 3
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论