说明:写一个脚本可以启动、杀死/var/lib/asterisk/agi-bin下manager_conf.pl 的进程。
1.在/etc/init.c下编写脚本
#vim control_conf
#!/bin/sh
# $Id$
#chkconfig: 345 95 20
#description:control conference
# Installation directory
CON_SBIN=/var/lib/asterisk/agi-bin
#Source function library
. /etc/rc.d/init.d/functions
if ! [ -x $CON_SBIN/manager_conf.pl ] ; then
echo "ERROR: $CON_SBIN/manager_conf.pl not found"
exit 0
fi
# Full path
DAEMON=$CON_SBIN/manager_conf.pl
RETVAL=0
start() {
#start daemons
echo -n $"Starting manager_conf: "
daemon $DAEMON > /dev/null
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/manager_conf
echo
return $RETVAL
}
stop() {
#Stop daemons
echo -n $"Stop manager_conf: "
killproc manager_conf.pl
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/manager_conf
echo
return $RETVAL
}
restart() {
stop
sleep 1
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: manager_conf {start|stop|restart}"
exit 1
esac
exit $?
2. 配置此文件
(1)将该文件设置为可执行文件
#chmod +x control_conf
确保manager_conf也是可执行文件
(2)添加指定的系统服务
#chkconfig --add control_conf
1、服务不支持 chkconfig 的解决办法
http://17610376.blog.51cto.com/366886/322834
这两天一直在研究系统服务,在chkconfig --add servername的时候老是提示服务不支持 chkconfig 经过查找,解决办法如下。示例,auto_run的前三行如下:
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
第一行,告诉系统使用的shell,所以的shell脚本都是这样。
第二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为 S80auto_run的文件连接,连接到/etc/rc.d/init.d目录下的的auto_run脚本。第一个字符是S,系统在启动的时候,运行脚 本auto_run,就会添加一个start参数,告诉脚本,现在是启动模式。同时在rc0.d和rc6.d目录下,创建名字为K90auto_run的 文件连接,第一个字符为K,个系统在关闭系统的时候,会运行auto_run,添加一个stop,告诉脚本,现在是关闭模式。
注意上面的三行是中,地二,第三行是必须的,否则在运行chkconfig --add auto_run时,会报错。常见的错误
“服务不支持 chkconfig”:
请注意检查脚本的前面,是否有完整的两行:
#chkconfig: 2345 80 90
#description:auto_run
在脚本前面这两行是不能少的,否则不能chkconfig命令会报错误。
如果运行chkconfig老是报错,如果脚本没有问题,我建议,直接在rc0.d~rc6.d下面创建到脚本的文件连接来解决,原理都是一样的。