我用两个linux,我的桌面操作系统是gentoo linux,网站的测试服务器用的是redhat9,这几天正筹划着把托管在网管中心那台win2000换下来,本来用redhat一切都很容易的,用rpm。可是redhat9所带的东西比较老了,比如我要装Subversion那么apache的版本就太低了。所以一些软件都要重新编译,不依赖于rpm,所以配置,启动脚本都要自己来写了。在gentoolinux里面很方便,在/etc/init.d/下新建一个脚本,当然要赋予它执行权限,然后用下面的命令:
#rc-update add scriptname default
这样就能让系统在开机时启动这个服务了。
可是到了redhat linux我就傻了,我根本不知道该怎么办,我知道redhat下有chkconfig可以设置系统的runlevers,可是我写的脚本却提示说不支持chkconfig。
在图书馆里找到了一本很不错的书《Linux power tools》,今天晚上一口气看完了,发现真的很不错,终于明白了runlevers。
redhat9以及另外有几个发行版的运行级别分为7级,通常0,1,6有特殊的用途,用于重启,关机时执行的操作等等我们能设置的只有2,3,4,5可以用来设置,而redhat9用级别5来表示进入x windows的级别,级别3用于开机自动运行的服务程序。脚本要存放到/etc/rc.d/init.d,脚本的书写也要有特殊的写法。一般有start,stop,restart三个命令是要被运行级别管理器调用的。下面是一个实例的脚本:
#!/bin/bash
case "$1" in
start)
command1
;;
stop)
command2
;;
restart)
$0 stop
$0 start
;;
esac
现在才可以运行chkconfig,或者直接建立一个符号连接到/etc/rc.d/rc?.d/目录之下,?表示相应的级别,我们在这要设置启动运行,那么?=3。而且要注意到符号连接要以“S”开头,表示进入到此运行级别时启动。
得到这些东西之后,我开始去了解gentoo的运行级别。rc-update到底做了什么。注意到/etc/runlevels下面有四个文件夹,boot,default,nonetwork,single,rc-update add命令就是把/etc/init.d中的脚本建立符号连接到相应的文件夹下。default就相当于运行级别3。
到此终于开始了解这两个发行版的运行级别及其设置了。