博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell脚本(管理守护进程)
阅读量:5260 次
发布时间:2019-06-14

本文共 1553 字,大约阅读时间需要 5 分钟。

    工作中常常会遇到处理消息队列的消费者进程,这样的进程是一个守护进程,即一个服务。服务通常写个shell脚本来管理,查询服务的status  ,启动start 关闭stop  重启reload。最近在学习shell,也模仿写了一个简单的服务管理脚本

    首先贴出模拟的守护进程服务,PHP程序,命名demo.php

  这是一个死循环,不停的输出。

管理的shell脚本如下

#!/bin/bashDEMO_SCRIPT='/home/tianquanjun/study/service/demo.php' #服务脚本DEMO_LOG='/home/tianquanjun/study/service/demo.log' #服务运行日志#判断程序是否已经在运行status_script(){    pids=`ps aux|grep /home/tianquanjun/study/service/demo.php|grep -v grep|awk '{print $2}'`    if [ ${pids} ]    then        echo ${0}'在运行中'        return 1    else        echo $0'未启动'        return 2    fi}#启动脚本,先判断脚本是否已经在运行start_script(){    status_script    if [ $? -eq 1 ]    then        echo ${0}' 已经在运行中了'    else        echo '启动'${0}'中...'        nohup /usr/bin/php ${DEMO_SCRIPT}>${DEMO_LOG} &        echo '启动完毕'    fi}#停止脚本stop_script(){    status_script    if [ $? -ne 1 ]    then        echo ${0}' 不是运行状态'    else        do            kill -TERM ${pid} >/dev/null 2>&1        done        echo '停止完毕'    fi}#重启脚本reload_script(){    stop_script    sleep 4    start_script}#入口函数handle(){    case $1 in    start)        start_script        ;;    stop)        stop_script        ;;    status)        status_script        ;;    reload)        reload_script        ;;    *)        echo 'USAGE OF THIS SERVER IS '${0} 'status|start|stop|restart';        ;;    esac}if [ $# -eq 1 ]then    handle $1else    echo 'USAGE OF THIS SERVER IS '${0} 'status|start|stop|restart';fi

  利用 ./demo.sh  status|start|stop|reload 来管理

 

由于守护进程容易死掉,所以我们也经常在ctontab中加入 定时重启任务

转载于:https://www.cnblogs.com/taijun/p/5073833.html

你可能感兴趣的文章
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
android:scaleType属性
查看>>
SuperEPC
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>