让Linux懂得为你开门—自动作业控制
文章作者 100test 发表时间 2007:03:14 16:35:02
来源 100Test.Com百考试题网
每次进入Linux系统的时候,总是看到类似于下面的登录画面:
Red Hat Linux release 6.2(Zoot)
Kernel 2.2.14-5.0 on an i686 |
这种冷冰冰的欢迎让人觉得很不友好。而且,有时候我们不仅希望能够自定义漂亮的登录画面,更希望系统在启动的时候自动执行自定义的脚本,这可以做到吗?
当然可以。和UNIX一样,Linux不但是一种多任务系统,而且一个很明显的优点,就是能够灵活的允许基于系统时间或时间的作业控制。前面我们希望的就是系统登录时的自动作业控制,下面我们就以它为例来分析Linux的自动作业控制(以red hat 6.2为例)。
1. 启动脚本的概念
Linux的目录树结构中,/etc目录包括了所有与系统启动有关的配置文件,例如lilo.conf, profiles,inittab等,其中rc.d目录包括了系统启动时的所有运行脚本。这类脚本称为rc脚本,也称为运行控制脚本。其中rc.d目录下按照运行级别的不同又分为多个脚本目录。如下:
#ls /etc/rc.d
init.d rc.local rc0.d rc2.d rc4.d rc6.d
rc rc.sysinit rc1.d rc3.d rc5.d |
这里的rc.sysinit作为系统的初始化脚本,是每一个运行级都要首先运行的。而rc.local则是每一个运行级别在最后都要运行的。在不同的运行级别,运行不同的rcx.d内的脚本。缺省情况下,每次启动时进入运行级别3,即有网络支持的标准多用户模式。我们来看rc3.d目录下有些什么样的脚本,如下:
#ls /etc/rc.d/rc3.d
K20nfs K35smb S10network S30syslog S60lpd S99linuxconf
K20rstatd K60marsnwe S11portmap S35identd S75keytable S99local
K20rusersd K84ypserv S14nfslock S40atd S80sendmail
K20rwalld K92ipchains S16apmd S40crond S85gpm
K20rwhod S05kudzu S20random S45pcmcia S85httpd
K34yppasswdd S10dualconf S25netfs S50inet S90xfs |
每个脚本命名的方式是“前缀 序号 脚本名”。在前缀后面,每一个脚本都有标识自身的序号,这个序号控制着脚本的运行顺序,而且前缀为K或S也各有不同的含义,其中:
K为前缀时表示运行脚本将删除(Kill)一个进程;
S为前缀时表示运行脚本将启动(Start)一个进程。