本篇文章整理一下自己学习linux服务管理遇到的问题以及相关的知识点的总结。详细的Linux启动过程比较复杂,本篇文章只重点介绍一下其中与系统的服务管理有关的一些脚本。(由于水平有限,文章中有错误的地方还望读者指正,共同进步。)
linux启动过程及服务管理
一 linux 启动过程
(1)其中/etc/rc.d/rc.sysinit 脚本的作用很多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。
(2) 其中/etc/inittab 的作用是告诉初始化进程应该执行的运行级别。
id:3:initdefault:
注:vi 看一下/etc/inittab文件的最后,有这样一段代码,其中的3就表示运行级别
这里的rc.d是 runlevel control directory的缩写即运行级别控制的目录,而linux中默认的运行级别有以下7种:
0 关机
1 单用户,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式
4 系统保留
5 图形模式
6 重启动
[root@localhost etc]# cd rc0.d
[root@localhost rc0.d]# ll
总用量 0
lrwxrwxrwx. 1 root root 20 5月 5 01:27 K01certmonger -> ../init.d/certmonger
lrwxrwxrwx. 1 root root 15 5月 5 01:29 K01numad -> ../init.d/numad
lrwxrwxrwx. 1 root root 16 5月 5 01:29 K01smartd -> ../init.d/smartd
lrwxrwxrwx. 1 root root 17 5月 5 01:27 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx. 1 root root 13 5月 5 01:27 K05atd -> ../init.d/atd
lrwxrwxrwx. 1 root root 14 5月 5 01:27 K10cups -> ../init.d/cups
lrwxrwxrwx. 1 root root 16 5月 5 01:30 K10psacct -> ../init.d/psacct
lrwxrwxrwx. 1 root root 19 5月 5 01:27 K10saslauthd -> ../init.d/saslauthd
lrwxrwxrwx. 1 root root 22 10月 2 00:32 K15htcacheclean -> ../init.d/htcacheclean
lrwxrwxrwx. 1 root root 15 10月 2 00:32 K15httpd -> ../init.d/httpd
(3)根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。由上图可以看到rc0.d 中文件都是链接到/etc/init.d的服务脚本的。不同的运行级别对应需要启动的服务也是不一样的。
注:/etc/init.d这个目录存放的是一些脚本,linux以rpm包安装的独立的服务启动脚本就在这里面。执行这些脚本可以用来启动,停止,重启这些服务。
(4)其中etc/rc.d/rc.local的作用就是在一切初始化工作后,Linux留给用户进行个性化的地方。我们可以把要需要自启动的服务放在这里面。
(5)执行/bin/login程序后就进入系统就进入到了等待用户输入username和password的界面了。
基本的启动过程清楚后,接下来我们看一下/etc 下面关于运行级别相关的文件/目录。
[root@localhost etc]# ls | grep ^rc
rc
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
rc.d
rc.local
rc.sysinit
如果我们进入rc.d可以看到rc.d目录下面也有rcx.d, rc.local , rc.sysinit.
[root@localhost rc.d]# ll
总用量 60
drwxr-xr-x. 2 root root 4096 10月 2 00:32 init.d
-rwxr-xr-x. 1 root root 2617 5月 12 2016 rc
drwxr-xr-x. 2 root root 4096 10月 2 00:32 rc0.d
drwxr-xr-x. 2 root root 4096 10月 2 00:32 rc1.d
drwxr-xr-x. 2 root root 4096 10月 2 00:32 rc2.d
drwxr-xr-x. 2 root root 4096 10月 29 20:45 rc3.d
drwxr-xr-x. 2 root root 4096 10月 2 00:32 rc4.d
drwxr-xr-x. 2 root root 4096 10月 2 00:32 rc5.d
drwxr-xr-x. 2 root root 4096 10月 2 00:32 rc6.d
-rwxr-xr-x. 1 root root 246 10月 28 18:06 rc.local
-rwxr-xr-x. 1 root root 20199 5月 12 2016 rc.sysinit
回过头我们详细看一下/etc下面的这些文件就能知道/etc下面的这些文件都是链接到rc.d目录下的。rcx.d->rc.d/rcx.d; rc.local-> rc.d/rc.local; rc.sysinit -> rc.d/rc.sysinit
[root@localhost etc]# ll | grep rc.d
lrwxrwxrwx. 1 root root 11 5月 5 01:23 init.d -> rc.d/init.d
lrwxrwxrwx. 1 root root 7 5月 5 01:26 rc -> rc.d/rc
lrwxrwxrwx. 1 root root 10 5月 5 01:26 rc0.d -> rc.d/rc0.d
lrwxrwxrwx. 1 root root 10 5月 5 01:26 rc1.d -> rc.d/rc1.d
lrwxrwxrwx. 1 root root 10 5月 5 01:26 rc2.d -> rc.d/rc2.d
lrwxrwxrwx. 1 root root 10 5月 5 01:26 rc3.d -> rc.d/rc3.d
lrwxrwxrwx. 1 root root 10 5月 5 01:26 rc4.d -> rc.d/rc4.d
lrwxrwxrwx. 1 root root 10 5月 5 01:26 rc5.d -> rc.d/rc5.d
lrwxrwxrwx. 1 root root 10 5月 5 01:26 rc6.d -> rc.d/rc6.d
drwxr-xr-x. 10 root root 4096 10月 28 18:06 rc.d
lrwxrwxrwx. 1 root root 13 5月 5 01:26 rc.local -> rc.d/rc.local
lrwxrwxrwx. 1 root root 15 5月 5 01:26 rc.sysinit -> rc.d/rc.sysinit
总结:
二 linux服务管理
其中基于xinetd 的服务已经不常用了,主要掌握基于源码包与基于RPM包的服务的启动与自启动的过程。而RPM包的服务都在/etc/init.d中,源码包的服务在安装源码包的目录下。