在linux下,借助shell查看一个后台运行的PHP程序是否非正常退出,如果退出,利用守护进程自动restart,类似mysql的safe_mysqld脚本。

其实,就是用shell脚本实现/etc/rc.d/目录的守护进程代码。

本例子,共共3个程序:

1,shstart.sh 负责启动

2,sh.sh 守护进程主程序

3,shstop.sh 安全退出守护进程和php程序主体

代码1,shstart.sh:

复制代码 代码示例:

#!/usr/local/bin/bash

/home/phpshell/sh.sh &

shpid="$!";

echo "$shpid" > /home/phpshell/sh.sid

代码2,sh.sh:

复制代码 代码示例:

#!/usr/local/bin/bash

PHP="/usr/local/bin/php"

PROGRAM="/www/time.php"

#start dameo

$PHP $PROGRAM &

chpid="$!";

echo "$chpid" > /home/phpshell/php.sid

echo "child pid is $chpid"

echo "status is $?"

while [ 1 ]

do

wait $chpid

exitstatus="$?"

echo "child pid=$chpid is gone, $exitstatus" >> /home/phpshell/phperror.log

echo `date` >> /home/phpshell/phperror.log

echo "**************************" >>/home/phpshell/phperror.log

sleep 10

$PHP $PROGRAM &

chpid="$!";

echo "$chpid" > /home/phpshell/php.sid

echo "next child pid is $chpid"

echo "next status is $?"

echo "userkill is $userkill"

done

代码3,shstop.sh:

复制代码 代码示例:

#!/usr/local/bin/bash

chpid="`cat sh.sid`";

kill $chpid;

echo "kill sh.sh done!"

ps ax|grep php |grep -v grep|awk '{print $1}'|xargs kill

sleep 2

ps ax|grep php |grep -v grep|awk '{print $1}'|xargs kill

echo "kill php done"

shell php的守护进程,实例详解shell编写守护进程的方法相关推荐

  1. android任务 进程 线程详解,Android任务、进程、线程详解

    singleTop模式,基本上于standard分歧,仅正在请求的Activity反好位于栈顶时,无所区别.此时,配放成singleTop的Activity,不再会构制新的实例加入到Task栈外,而是 ...

  2. python守护多线程_Python多线程Threading、子线程与守护线程实例详解

    线程Threading: python中多线程需要使用threading模块 线程的创建与运行: 1.直接调用threading的Thread类: 线程的创建:线程对象=thread.Thread(t ...

  3. Element Plus 实例详解(一)___安装设置

    Element Plus 实例详解(一) ___安装设置 本篇目录: 一.前言 二.安装方法 1.环境支持 2.Element Plus安装使用方式 (1).使用包管理器 (2).浏览器直接引入 3. ...

  4. java写exe程序实例,java实现可安装的exe程序实例详解

    java实现可安装的exe程序实例详解 通过编写java代码,实现可安装的exe文件的一般思路: 1.在eclipse中创建java项目,然后编写java代码,将编写好的java项目导出一个.jar格 ...

  5. java.exe 安装程序_java实现可安装的exe程序实例详解

    java实现可安装的exe程序实例详解 通过编写Java代码,实现可安装的exe文件的一般思路: 1.在eclipse中创建java项目,然后编写Java代码,将编写好的Java项目导出一个.jar格 ...

  6. 以python程序调用的系统_python 系统调用的实例详解

    python 系统调用的实例详解 本文将通过两种方法对python 系统调用进行讲解,包括python使用CreateProcess函数运行其他程序和ctypes模块的实例, 一 python使用Cr ...

  7. java web初始化实例_Struts2中实现web应用的初始化实例详解

    Struts2中实现web应用的初始化实例详解 在JavsSE中,main方法为应用提供了入口,而在Android中,我们可以使用Application对于整个应用的生命周期进行管理,那么在基于Str ...

  8. linux shell 端口占用,linux 查看端口占用命令实例详解

    linux 查看端口占用命令实例详解 端口是系统非常重要的一个东东,我们经常需要查看哪个进程占用了哪个端口,或者哪个端口被哪个进程占用.废话不多说,直接上干货,教大家怎样查看系统端口占用情况. 方法一 ...

  9. linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解

    <Linux典藏大系:Linux Shell命令行及脚本编程实例详解>共15章,分为两篇.主要内容包括:Linux 及Linux Shell简介.初识Linux Shell.常用Shell ...

  10. php shell,php命令行写shell实例详解

    php 可以像java perl python 那样运行,今天发现如果我早早知道这个,或许我不会去学习java 和 python 当年学java不过为了一个程序放在服务器上,不停的跑啊跑,原来 php ...

最新文章

  1. 浏览器拦截弹出窗口 IE Firefox……浏览器
  2. SA区坏道数据恢复的经历
  3. 当前页面怎么调用子集iframe页面的方法
  4. 【Tools】Linux下C和C++程序中内存泄露检测
  5. 《算法导论》学习总结 — 21.第16章 贪心算法(1) 基础入门1
  6. Eclipse导出可执行JAR文件的方法
  7. 【bzoj1532】[POI2005]Kos-Dicing 二分+网络流最大流
  8. 如何系统的自学python-如何系统地自学Python?
  9. ecshop mysql 报错_ecshop数据库操作函数
  10. 【玩转Ubuntu】02. Ubuntu上搭建Android开发环境
  11. 什么标签用于在表单中构建复选框_以下 ( ) 标签用于在表单中构建复选框 。_IP通信技术答案_学小易找答案...
  12. SVN(三)利用 IntelliJ IDEA 进行代码对比的方法
  13. python将多个pdf合并并保存书签
  14. IT高管发出“暗语邮件”求救(图)
  15. 王明道牧师《写给青年基督徒的一封信》
  16. 软件性能测试方案怎么写?完整的性能测试报告模板分享
  17. 赫斯曼万兆交换机_赫斯曼交换机型号说明
  18. 程序员一直在寻找的日程安排工具
  19. 如何备份VMware虚拟磁盘文件并移植到其他虚拟机
  20. 《实用VC编程之玩转控件》第7课:ListBox 列表控件

热门文章

  1. idea 根据数据库表自动创建持久化类
  2. 解决 找不到方法:“Void System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)”。
  3. String,StringBuff,Stringbuilder三者的理解以及练习题
  4. ThreadLocal源码学习
  5. 面试必考:秒杀系统的9个核心知识点,一次性打包给你
  6. Spring的注入方式中,官方推荐哪种方式
  7. JOIN查询流程与驱动表
  8. android ffmpeg4.0.2编译过程记录
  9. JavaScript核心语法——变量与常量
  10. 警惕!这5种“脸色”在暗示你这些健康问题!