4.1.7 Linux的第一个进程:init(2)
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 2008-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 2008-06-24 rc.local -rwxr-xr-x 1 root root 27411 2008-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"来实现。