有时出于某种需要,我们需要系统一启动就运行我们的某个程序来执行服务或等待命令,在windows下可以通过NT服务来实现,在linux下这些进程就叫做守护进程,或者Daemon进程。下面使用RHEL6环境具体介绍下设置方法。
首先需要准备一个启动脚本,并放到/etc/init.d目录下,下面是一个参考脚本。
#!/bin/sh
# chkconfig: 345 88 15
# description: start/stop mytest daemon
# Source function library.
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
else
. /lib/lsb/init-functions
fi
#进入你的工作目录
cd /mytest
#加载必要的环境变量
source /etc/profile
start()
{
echo -n $"run mytest"
#启动命令,需根据自己情况修改
/mytest/start.sh > /var/mytest.log 2>&1 & #注意这里一定要把程序切入后台执行
echo
}
stop()
{
echo -n $"stop mytest "
#下面是停止命令,需根据自己情况修改
/mytest/stop.sh
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload}"
esac
将以上代码命名为mytest,放到/etc/init.d下面。代码中第二行第三行是为了支持chkconfig而设置的,运行级别是3、4、5,启动顺序号是88,停止顺序号15,注意检查不要与已经存在的序号冲突。
现在就可以通过以下命令来启动停止进程
/etc/init.d/mytest start /etc/init.d/mytest stop
测试没有问题,启动停止都正常了,就可以进入下一步,如果发现没有启动成功,可以通过/var/mytest.log的日志内容来确定具体原因。
要想随操作系统的启动和停止来启停服务,很简单,在redhat发行版下面只需要
chkconfig --add mytest
mytest就是/etc/init.d下面那个脚本文件的名称。
原文:http://www.cnblogs.com/gongxucheng/p/linux-daemon.html