Linux 检测Python程序是否存在并自动重启
2014-04-05 16:34
579 查看
stackoverflow上有一段脚本:
这段脚本写的很好,但是pidof不能检测python指定脚本的pid,只能检测python的pid,解决的办法是用pgrep。
str = $(pgrep -f "python /user/test.py")
检测text.py的pid,如果有多个pid,注意它的输出为字符串,可以用arr=(${str// / })来分割成数组进行具体操作。
pgrep -f "python /user/test.py" | wc -w
查看test.py的pid个数
改写后的脚本:
#! /bin/bash case "$(pidof amadeus.x86 | wc -w)" in 0) echo "Restarting Amadeus: $(date)" >> /var/log/amadeus.txt /etc/amadeus/amadeus.x86 & ;; 1) # all ok ;; *) echo "Removed double Amadeus: $(date)" >> /var/log/amadeus.txt kill $(pidof amadeus.x86 | awk '{print $1}') ;; esac
这段脚本写的很好,但是pidof不能检测python指定脚本的pid,只能检测python的pid,解决的办法是用pgrep。
str = $(pgrep -f "python /user/test.py")
检测text.py的pid,如果有多个pid,注意它的输出为字符串,可以用arr=(${str// / })来分割成数组进行具体操作。
pgrep -f "python /user/test.py" | wc -w
查看test.py的pid个数
改写后的脚本:
#! /bin/bash case "$(pgrep -f "python /user/test.py" | wc -w)" in 0) echo "Starting program: $(date)" >> /var/log/test.txt python /user/test.py & ;; 1) echo "Restarting program: $(date)" >> /var/log/test.txt kill $(pgrep -f "python /user/test.py") python /user/test.py & ;; *) echo "Removed double program and restarting: $(date)" >> /var/log/test.txt kill $(pgrep -f "python /user/test.py") python /user/test.py & ;; esac
相关文章推荐
- linux下如何检测程序是否运行并重启
- Linux下检测程序进程是否正常并重启的脚本
- android执行外部命令、检测文件是否存在、自动检测U盘路径
- linux下通过脚本实现自动重启程序
- windows下检测网站是否正常运行并自动重启服务
- linux查看进程是否存在,不存在则重启
- Python3基础 str find与index 检测参数字符串是否存在字符串中,有则范围第一个索引值
- linux下通过脚本实现自动重启程序的方法
- linux监控程序-程序自动重启方法
- linux检测文件夹是否存在
- linux监控程序-程序自动重启方法
- 转载自zhaohongyu113 的linux监控程序-程序自动重启方法
- 定时检测Memcached进程是否存在,若不存在自动启动它
- 打造一个自动检测页面是否存在XSS的小插件
- 用dos批处理程序检测是否安装.netframework,并自动安装后运行指定程序(.net自启动光盘的制做)
- linux 进程自动重启检测脚本
- python实现自动重启本程序的方法
- 转载自zhaohongyu113 的linux监控程序-程序自动重启方法
- 在 Linux 上监控 Tomcat 是否关闭, 如果关闭自动重启
- 用dos批处理程序检测是否安装.netframework,并自动安装后运行指定程序(.net自启动光盘的制做)