用chkconfig --list可以看到有很多项目,这些都放在目录/etc/init.d下面。下面我们要进行新加入一个httpd启动项目(如果没有httpd的话)
touch /etc/init.d/httpd
chmod 755 /etc/init.d/httpd
vi /etc/init.d/httpd
解释一下:
chkconfig: 2345 85 86
2345表示这几种启动模式会启动该程序,init 1-6分别不同,3是多用户模式命令行模式,5是窗口模式,其他还有重启什么的,可以网上搜一下。
85是启动的优先级,86是关闭的优先级,二者均是数字越小越先执行。启动和关闭优先级就是我们在启动或关系系统的时候,看到各个服务ok ok ok(绿色的字),就是这里的顺序.
processname 进程取名
. /etc/init.d/functions 载入函数,这里是我们现实绿色ok的关键函数
RETVAL 全局返回值,函数通过这个值来判断是启动失败还是成功.
daemon 是表示以精灵进程的方式启动。这样会脱离控制终端。
$? 为上一个脚步执行的返回值,通常0为成功,非0为失败
exit $RETVAL 把RETVAL的值作为该脚本的返回值,也就是当我们执行一个脚步./a.sh .当a.sh 最后exit 2 的时候,那我在./a.sh后echo $?就是2了。系统用这个来判断启动成功与否
这个时候我们就可以试一下了
service httpd start就可以看到启动成功了,
service httpd stop关闭服务。
这里没有判断服务重复启动的问题,请自行在启动脚本里判断,比如用pid文件来测试等。
最后加入开机启动
chkconfig --add httpd
然后我们再看一下是否加入成功:
chkconfig --list|grep httpd
看到httpd表示成功了。重启机器,可以看到httpd服务自动运行了。