|
上次我们说到了不同的执行等级,既然不同的执行等级有不同的激活程序,那么一个执行等级到底要激活或停止那些程序?系统上的每一个执行等级是依据/etc/inittab文档的设置内容以及在/etc/rc.d/rcN.d目录(N为对应执行等级)下所有的激活/停止script来决定进入该执行等级时所需要激活或者停止的程序。而这些/etc/rc.d/rcN.d目录可以称为对应执行等级的激活目录。
默认,除了/etc/rc.d/rc.local之外,系统上其他所有的激活/停止script都是存储在/etc/rc.d/init.d目录内,而前面提到的在/etc/rc.d/rcN.d目录下的script都是指向/etc/rc.d/init.d目录下激活script的符号连接文档。
基本上,每个激活/停止脚本(script)都会提供数个不同的选项,但是他们一定都有提供start & stop两个,start表示将该脚本所控制的程序激活起来,相反的,stop选项表示停止在建立激活/停止脚本的符号连接文档时,我们可以利用文件名称设置为S开头来表示用 start激活脚本,设置为K表示stop脚本,我们还可以载文件名中(s/k之后)设置一个数值来表示激活脚本的优先级,越大越晚执行。
如:sendmail服务的激活脚本
[code:1]/etc/rc.d/init.d/sendmail
/etc/rc.d/rc0.d/K30sendmail
/etc/rc.d/rc1.d/K30sendmail
/etc/rc.d/rc2.d/S80sendmail
/etc/rc.d/rc3.d/S80sendmail
/etc/rc.d/rc4.d/S80sendmail
/etc/rc.d/rc5.d/S80sendmail
/etc/rc.d/rc6.d/K30sendmail[/code:1]
因为,所有由init执行的激活script都是用符号连接指向/etc/rc.d/init.d目录下的script文档,所以,如果我们需要修改某个激活脚本的话,只需要修改/etc/rc.d/init.d下的脚本即可。当我们需要在系统上新增加一个脚本,将该脚本放在/etc/rc.d/init.d下,然后每一个激活目录(/etc/rc.d/rcN.d)内建立适当的K* or S*符号连接,相反的就del it !
另:/etc/rc.d/rc.local是一个唯一不符合这个文档结构的激活脚本,默认,这个脚本会被/etc/rc.d/rc2.d、/etc/rc.d/rc3.d、/etc/rc.d/rc5.d目录下的连接文件S99local连接,也就是2、3、5等级上的最后一个执行脚本。
这里顺便给出linuxsir javalee斑竹的文章,让大家可以得到更多的动手机会:
技巧:像执行命令一样执行脚本
用自动导入函数的方法,可以在命令行下像执行命令一样快捷,而且速度快,占用资源少.
1,建立自己的函数库
mkdir functionlib
然后将常用的脚本改成函数的语法,如:
function filename { command ; }
将filename拷贝到functionlib中,
2,修改环境文件,在/etc/profile中添加
export FPATH=$HOME/functionlib
3,重登录一下
这样的话,你就可以随时用像ls那样运行你自己的filename"命令"
而不需要用什么dot,sh,来运行你的函数/脚本啦~~
如果在脚本中运行,可以在脚本顶部用
#!/bin/sh
##
autoload filename //来自动导入函数.
...
filename //调用函数 |
|