Linux下新建服务

1 首先在/etc/rc.d/init.d/下添加脚本 asr_cron

#!/bin/bash
# $Id: rc.redhat.asterisk -- ::43Z tilghman $
#
# asterisk Starts, Stops and Reloads Asterisk.
#
# chkconfig:
# description: Asterisk PBX and telephony daemon.
AST_SBIN=/var/www/html/test.php . /etc/rc.d/init.d/functions if ! [ -x $AST_SBIN ] ; then
echo "ERROR: test not found"
exit
fi DAEMON=$AST_SBIN start() {
# Start daemons.
echo -n $"Starting test: "
$AST_SBIN >> /var/www/html/test.log &
sleep
proc=$(ps -fe | grep $AST_SBIN|grep -v grep|awk '{print $2}')
if [ -z $proc ]
then
echo_failure
else
echo_success
fi
RETVAL=$?
echo
return $RETVAL
} stop() {
# Stop daemons.
RETVAL=
echo -n $"Shutting down test: "
ps -fe | grep $AST_SBIN|grep -v grep|awk '{print $2}'|while read line
do
kill $line
RETVAL=$?
echo -n "kill $line "
done
sleep
proc=$(ps -fe | grep $AST_SBIN|grep -v grep|awk '{print $2}')
if [ -z $proc ]
then
echo_success
else
echo_failure
fi
echo
return $RETVAL
} restart() {
stop
start
} status() {
proc=$(ps -fe | grep $AST_SBIN|grep -v grep|awk '{print $2}')
if [ -z $proc ]
then
echo "teset: test is stoped"
else
echo "test: test is starting"
fi
RETVAL=$?
return RETVAL
} # See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
*)
echo "Usage: service test {start|stop|restart|status}"
exit
esac exit $?

这个脚本执行一个PHP脚本,功能有启动、停止、重启等功能。

test.php

#!/usr/bin/php -q
<?php
set_time_limit(0);
$file = 'test.txt'; while(true)
{
@file_put_contents($file,date('Y-m-d H:i:s',time())."\n",FILE_APPEND);
sleep(10);
}

2 把上面的脚本加到服务里:

chkconfig --add asr_cron

3 需要把asr_cron脚本、以及PHP脚本赋予可执行权限

然后就可以如下的命令控制服务的启动、停止、重启了:

/etc/rc.d/init.d/asr_cron start

/etc/rc.d/init.d/asr_cron stop

/etc/rc.d/init.d/asr_cron restart

service asr_cron start

service asr_cron stop

service asr_cron restart

上一篇:2.QT-窗口组件(QWidget),QT坐标系统,初探消息处理(信号与槽)


下一篇:ExternalException (0x80004005): GDI+ 中发生一般性错误