qrasvasdf
分类: LINUX
2014-10-15 10:09:03
#!/bin/bash # # chkconfig: - 57 75 # description: test service
### BEGIN INIT INFO # Provides: proxy # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start or stop the HTTP Proxy. ### END INIT INFO
解释: # chkconfig: - 57 75 第一段-,这个服务如果使用chkconfig开启时,设置那些启动级别开启,一般可以设为 2345这4个启动级别,或使用 - 系统默认,默认是2345
第二段57,表示在已设置为on的启动级别下,系统启动服务时的启动顺序,序号越小,越先被启动,设置时要考虑到本服务依赖的服务,不能比依赖的服务先启动。在/etc/rc.d/rc5.d/可以看到启动级别为5时的这些服务的顺序,以S开头表示启动服务,以K开头表示停止服务 第三段75,表示没有设置为on的启动级别下,系统停止服务是的顺序,序号越小,越先被停止
### BEGIN INIT INFO### END INIT INFO 是一个固定格式Provides: proxy //表示此服务脚本提供的服务名称(不一定是脚本文件名),其他服务脚本中如果有依赖次服务的可以使用它 (注意与service命令区分,service 脚本名 命令,service后面跟的脚本名,默认去/etc/init.d下找此文件,其实是一个文件名)
# Required-Start: $remote_fs //启动时依赖的服务名 # Required-Stop: $remote_fs //停止时依赖的服务名# Default-Start: 2 3 4 5 //chkconfig开启服务时,默认为on的启动级别# Default-Stop: 0 1 6 //chkconfig开启服务时,默认为off的启动级别2,脚本总体框架示例
strt() {echo "Starting test ..."echo 3 >> /tmp/sunyu.txt}stop() {echo "Stopping test ..."echo 2 >> /tmp/sunyu.txt}# See how we were called.case "$1" instart)start;;stop)stop;;restart|force-reload)stopstart;;*)echo $"Usage: $0 {start|stop|restart|force-reload}"exit 2esac
二,设置开机启动
1,将脚本拷贝到/etc/init.d下,且添加可执行权限
2,chkconfig --add servicename
chkconfig servicename on
三,使用技巧
1,修改服务启动顺序
修改/etc/init.d/脚本文件,中的# chkconfig: 345 17 75 ////这里的17就是启动顺序,修改之,数越大顺序越靠后chkconfig重新添加此服务,并开启chkconfig --del servicenamechkconfig --add servicenamechkconfig servicename on2,设置服务为开机启动
只将服务脚本拷贝到/etc/init.d下,可以使用service命令对服务操作,但是还没有做到开机自动启动chkconfig --level 2345 servicename on //开启此服务在2345系统级别下的自动启动功能