如何使守护进程开机启动

来源:互联网 发布:淘宝买剑三号安全吗 编辑:程序博客网 时间:2024/05/16 08:59

写一个简单的守护进程,如何做到让其开机启动呢?

这个守护进程,无论是使用shell脚本写的,还是使用C等编译型语言写的,都需要经过进程脱离终端转入后台执行的过程,可以代码层面精灵化,也可以命令行下使用nohup等方式实现。

下面的例子是通过nohup实现的精灵化。
例如,用shell脚本实现的一个守护进程appled.sh,保护myapple程序的不挂掉,如果挂掉,立刻拉起。

#!/bin/bashPROGRAM="/usr/local/appleend/bin/myapple"CFGFILE="/usr/local/appleend/cfg/apple_agent.conf"while :do    find=`ps -e -o args | grep "^$PROGRAM" | wc -l`    if [ $find -eq 0 ]; then        $PROGRAM $CFGFILE    fi    sleep 10doneexit 0

开机启动

如何将这个守护进程开机启动的呢?

在/etc/init.d/目录下创建myappled的脚本,内容如下:

#!/bin/bash## myappled    A test service program## chkconfig: - 92 12# description: A test service prog## @name: myappled# @author: lanyang# @created: 2017.04.29## Source function library.. /etc/init.d/functionsprog=applePROG=/usr/local/appled.shstart() {        echo -n $"Starting $prog: "        daemon "nohup ${PROG}&"        RETVAL=$?        echo}case "$1" in  start)        start        ;;  *)        echo $"Usage: $0 {start}"        exit 1esacexit $RETVAL

配置开机启动

# chkconfig --add myappled# chkconfig --level 2345 myappled on# chkconfig --list myappledmyappled      0:off   1:off   2:on    3:on    4:on    5:on    6:off

OK,大功告成。

关于代码层面的精灵化和开机启动,请参考如下链接:
如何增加一个系统服务service

0 0
原创粉丝点击