频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

13.2 init进程

作者: IT同路人 出处:人民邮电出版社  2008-03-13 16:26    砖    好    评论   进入论坛
阅读提示:《Linux标准学习教程》本书详细讲解了Linux系统的基本知识、Linux系统的安装、Linux程序编译和调试维护等内容。第三章讲的是Linux图形界面内容。本文写的是init进程。

13.2  init进程 

init是Linux系统执行的第一个进程,进程ID为1,是系统所有进程的起点,主要用来执行一些开机初始化脚本和监视进程。Linux系统在完成核内引导以后就开始运行init程序,init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它由若干行命令所组成。在RHEL 4系统中,inittab配置文件的内容如下所示。

#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, 
#               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)
# 
//表示当前缺省运行级别为5,启动系统进入图形化界面
id:5:initdefault:
//启动时自动执行/etc/rc.d/rc.sysinit脚本
# 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
//当运行级别为5时,以5为参数运行/etc/rc.d/rc脚本,init将等待其返回
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
//在启动过程中允许按[CTRL+ALT+DELETE]重启系统
# 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"
//在运行级别2、3、4、5上以ttyX为参数执行/sbin/mingetty程序,打开ttyX终端用于用户登录,
如果进程退出则再次运行mingetty程序
# 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

//在级别5上运行xdm程序,提供xdm图形方式登录界面,并在退出时重新执行
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon

inittab配置文件每行的基本格式如下。

id:runlevels:action:process

其中某些部分可以为空,下面我们逐一介绍。

1.id
1~2个字符,配置行的惟一标识,在配置文件中不能重复。
2.runlevels

配置行适用的运行级别,在这里可填入多个运行级别,比如12345或者35等。

Linux有7个运行级别。

l 0:关机。
l 1:单用户字符界面。
l 2:不具备网络文件系统(NFS)功能的多用户字符界面。
l 3:具有网络功能的多用户字符界面。
l 4:保留不用。
l 5:具有网络功能的图形用户界面。
l 6:重新启动系统。
3.action

Init有如下几种行为,如表13.1所示。

表13.1 init行为

   

   

respawn

启动并监视第4项指定的process,若process终止则重启它

wait

执行第4项指定的process,并等待它执行完备

once

执行第4项指定的process

boot

不论在哪个执行等级,系统启动时都会运行第4项指定的process

bootwait

不论在哪个执行等级,系统启动时都会运行第4项指定的process,且一直等它执行完备

off

关闭任何动作,相当于忽略该配置行

ondemand

进入ondemand执行等级时,执行第4项指定的process

initdefault

系统启动后进入的执行等级,该行不需要指定process

sysinit

不论在哪个执行等级,系统会在执行bootbootwait之前执行第4项指定的process

powerwait

当系统的供电不足时执行第4项指定的process,且一直等它执行完备

powerokwait

当系统的供电恢复正常时执行第4项指定的process,且一直等它执行完备

powerfailnow

当系统的供电严重不足时执行第4项指定的process

ctrlaltdel

当用户按下Ctrl+Alt+Del时执行的操作

kbrequest

当用户按下特殊的组合键时执行第4项指定的process,此组合键需在keymaps文件定义

4.process

process为init执行的进程,这些进程都保存在目录/etc/rc.d/rcX中,其中的X代表运行级别,rc程序接收X参数,然后运行/etc/rc.d/rc.X下面的程序。使用如下命令可以查看/etc/rc.d目录内容。

#ls -l /etc/rc.d/
总用量 112
drwxr-xr-x  2 root root  4096  3月 15 14:44 init.d
-rwxr-xr-x  1 root root  2352 2004-03-17  rc
drwxr-xr-x  2 root root  4096  3月 15 17:42 rc0.d
drwxr-xr-x  2 root root  4096  3月 15 17:42 rc1.d
drwxr-xr-x  2 root root  4096  3月 15 17:42 rc2.d
drwxr-xr-x  2 root root  4096  3月 15 17:42 rc3.d
drwxr-xr-x  2 root root  4096  3月 15 17:42 rc4.d
drwxr-xr-x  2 root root  4096  3月 15 17:42 rc5.d
drwxr-xr-x  2 root root  4096  3月 15 17:42 rc6.d
-rwxr-xr-x  1 root root   220 2003-06-24  rc.local
-rwxr-xr-x  1 root root 27411 2005-08-03  rc.sysinit

使用如下命令查看/etc/rc.d/rc5.d的内容。

# ls -l /etc/rc.d/rc5.d
总用量 432
lrwxrwxrwx  1 root root 21  4月 29 15:11 K01tog-pegasus -> ../init.d/tog-pegasus
lrwxrwxrwx  1 root root 24  4月 29 14:20 K02NetworkManager -> ../init.d/NetworkManager
lrwxrwxrwx  1 root root 17  4月 29 15:29 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx  1 root root 14  4月 29 15:31 K05innd -> ../init.d/innd
lrwxrwxrwx  1 root root 19  4月 29 14:17 K05saslauthd -> ../init.d/saslauthd
lrwxrwxrwx  1 root root 19  4月 29 14:21 K10dc_server -> ../init.d/dc_server
lrwxrwxrwx  1 root root 16  4月 29 14:21 S09pcmcia -> ../init.d/pcmcia
lrwxrwxrwx  1 root root 17  4月 29 14:17 S10network -> ../init.d/network
lrwxrwxrwx  1 root root 16  4月 29 14:17 S12syslog -> ../init.d/syslog
……………………………………

这些文件都是符号链接,以S打头的标识启动该程序,而以K打头的标识终止该程序,后面的数字标识执行顺序,越小越先执行,剩下的标识程序名。系统启动或者切换到该运行级别时会执行以S打头的程序,系统切换到该运行级别时会执行以K打头的程序。

这个目录下的程序可通过chkconfig程序进行管理,当然这个目录下的程序需要符合一定规范,如果了解shell编程,可以查看这些符号链接所指向的程序的源码。

init也是一个进程,和普通的进程具有一样的属性。比如修改了/etc/inittab,想让修改马上生效,可通过运行“kill -SIGHUP 1”来实现,也可通过运行“init q”来实现。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节
专题
Linux——从菜鸟到高手
Linux/Solaris服务器的安全配置
Linux 集群技术专题
Linux中文环境
Linux防火墙
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。