守护进程是Linux下的后台服务进程(Daemon进程),它的生存周期较长,独立于控制终端并且周期性的执行某种任务处理某些事件。
守护进程的角本一般有这样一些处理逻辑:1、启动,2、停止,3、重新启动,4、查看状态
1、启动:使用新的进程开启守护进程程序,并且退出启动进程,这样,守护进程的父进程为init进程。
2、停止:得到守护进程的PID,将守护进程杀死。
3、重新启动:先停止、再启动。
4、查看状态:试图获取守护进程的PID,如果为空,则没有在运行,如果不为空则正在运行。
#!/bin/bash
DAEMON_NAME="test_daemon.sh"
PID=`ps -ef | grep $DAEMON_NAME | grep -v grep | awk '{print $2}'`
start()
{
if [ "$PID" = "" ]; then
./$DAEMON_NAME &
echo "start [OK]"
exit 0
else
echo "start [FAILED]"
exit 0
fi
}
stop()
{
echo $PID
if [ "$PID" = "" ]; then
echo "stop [FAILED]"
else
kill $PID
echo "stop [OK]"
exit 0
fi
}
status()
{
if [ "$PID" = "" ]; then
echo "not running"
else
echo "running"
fi
exit 0
}
restart()
{
stop;
start;
}
case "$1" in
"start" ) start;;
"stop" ) stop;;
"status" ) status;;
"restart" ) restart;;
esac