• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > linux进程监控shell脚本代码

linux进程监控shell脚本代码

作者:mdxy-dxy 字体:[增加 减小] 来源:互联网

mdxy-dxy 通过本文主要向大家介绍了linux 多进程 shell,linux shell脚本,linux shell脚本攻略,linux shell脚本实例,linux常用shell脚本等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

为确保php页面在后台运行,写了一个监控脚本,假设程序异常退出,那么可以自动重启。

shell脚本/usr/local/scripts/receve.sh内容:

#!/bin/bash
#funtion:keep receve.php running
PHP="/usr/local/php5/bin/php"
PROGRAM="receve.php"
#start dameo
$PHP /home/httpd/$PROGRAM >>/usr/local/scripts/phpshell/receve.out &
chpid="$!";
echo "$chpid" > /usr/local/scripts/phpshell/receve.sid
echo "child pid is $chpid"
echo "status is $?"
while [ 1 ]
do
wait $chpid
exitstatus="$?"
echo "child pid=$chpid is gone, $exitstatus" >>/usr/local/scripts/phpshell/receve.php_error.log
echo `date` >> /usr/local/scripts/phpshell/receve.php_error.log
echo "**************************" >>/usr/local/scripts/phpshell/receve.php_error.log
sleep 10
$PHP /home/httpd/$PROGRAM >> /usr/local/scripts/phpshell/receve.out &
chpid="$!";
echo "$chpid" > /usr/local/scripts/phpshell/receve.sid
echo "next child pid is $chpid"
echo "next status is $?"
done
</div>

需要保证监控脚本正常运行,在每天凌晨自动重启脚本/usr/local/scripts/restart_r.sh,写入crontab:

#!/bin/bash
echo "" >/tmp/receve_pid.txt
/bin/ps ax | /bin/grep "receve.sh" | /bin/grep -v "grep" | /bin/awk '{print $1}' >/tmp/receve_pid.txt
no1pid=`cat /tmp/receve_pid.txt | sort -r`
no2pid=`cat /usr/local/scripts/phpshell/receve.sid | sort -r`
if [ -z $no1pid ];then
  echo "receve.sh pid is null, receve.sh is not running."
 else  
  /bin/kill -9 "$no1pid"  
  echo "receve.sh killed"
fi
sleep 3
if [ -z $no2pid ];then
  echo "receve.php pid is null, receve.php is not running."
 else
  /bin/kill -9 "$no2pid"
  echo "receve.php killed"
fi
rm -rf /usr/local/scripts/phpshell/receve.sid 
sleep 3 
/usr/local/scripts/receve.sh > /dev/null &
</div>

crontab:

#restart receve.sh
10 00 * * * /usr/local/scripts/restart_r.sh
</div>

注意:脚本命名要避免重复,避免自己kill掉自己的进程。

</div>

您可能想查找下面的文章:

  • 一天一个shell命令 linux好管家-进程-ps命令详解
  • linux shell实现守护进程脚本
  • linux进程监控shell脚本代码
  • shell监控linux系统进程创建脚本分享
  • linux下监视进程 崩溃挂掉后自动重启的shell脚本
  • Linux Shell中判断进程是否存在的代码

相关文章

  • Ubuntu配置NFS的具体流程(推荐)
  • 把文件复制N份的2个Shell脚本代码
  • Linux下统计当前文件夹下的文件个数、目录个数
  • shell脚本中28个特殊字符的作用简明总结
  • Shell脚本实现自动修改IP、主机名等功能分享
  • Git 创建分支提交远程分支详解
  • Shell脚本中获取进程ID的方法
  • 通过实例深入理解linux shell数组
  • Shell 编程:Bash空格的那点事
  • Ubuntu用户之间相互切换方法(推荐)

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 轻松掌握Linux关机重启命令
    • Shell脚本实现线上服务器之间对比文件是否一致
    • Shell中的for循环总结
    • linux系统安装字体详细介绍
    • 比较两个字符串是否相等的shell代码
    • 检查linux网络状态的两个脚本
    • shell脚本实现批量测试局域网主机是否在线
    • 远程SSH连接服务与基本排错经验总结
    • Linux中rz命令和sz命令使用详解大全
    • Shell脚本把文件从GBK转为UTF-8编码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有