单进程程序的守护脚本示例

这篇博客介绍了一个用于守护单进程程序的脚本,该脚本具备以守护模式启动、记录重启信息到日志、根据pid管理日志文件、在启动时停止已运行的守护进程以及响应SIGTERM、SIGINT、SIGUSR1信号关闭进程的功能。同时,它确保在操作时不会错误地终止非目标进程。
摘要由CSDN通过智能技术生成

示例的守护脚本有具有以下功能:

  1. 守护脚本能以daemon模式进行自举
  2. 守护脚本运行期间,将目标程序重启时间节点及其pid记录在日志中
  3. 守护脚本的日志文件名称的末尾是守护脚本的pid
  4. 守护进程启动时会停止当前运行的守护进程
  5. 通过SIGTERM、SIGINT、SIGUSR1关闭守护进程,守护进程会关闭目标程序
  6. 守护进程在关闭守护进程或目标程序时,都会检测指定进程是否是守护进程或目标程序,以防误杀进程
#!/bin/bash
app=unimrcpserver
app_pid=-1

p='*/'
script_app=${0##$p}

exit_handler()
{
    if (( ${app_pid} != -1 ));then
        counter=`ps -fp ${app_pid}|grep ${app}|wc -l`
        if (( ${counter} != 0 ));then
            kill -s SIGKILL ${app_pid}
        fi

        app_pid=-1
        wait
    fi

    exit
}

trap "exit_handler" EXIT SIGUSR1 SIGINT SIGTERM

# 进入脚本所在目录
p='/*'
cd "${0%$p}/"

log=${app}.start.info.*
p='*.'
for file in ${log};do
        if test -e ${file};then
                id=${file##$p}
                counter=`ps -fp ${id}|grep ${s
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值