import subprocess
import os
import datetime
#查看进程中程序相关执行的进程数 是否少于2
res = subprocess.Popen("ps -ef | grep get_money",stdout=subprocess.PIPE,shell=True)
python_process =res.stdout.readlines()
counts=len(python_process)
if counts < 2:
# writing some log info
#reboot 重启这个程序
os.system('/usr/bin/python /Users/Luke/Desktop/get_money.py')
然后用crontab -e 定时执行改脚本就可以
定时运行该脚本
crontab -e 进入编辑模式
crontab 里面的路径尽量都写绝对路径
然后输入
*/10 * * * * /usr/bin/python /Users/mac/Desktop/文件名
每十分钟运行该脚本一次
【例】上面ps -ef | grep 程序名
~ Luke$ ps -ef | grep date_for_file
503 49785 41020 0 2:09下午 ttys001 0:00.06 /Library/Frameworks/Python.framework/Versions/3.5/Resources/Python.app/Contents/MacOS/Python date_for_file.py
503 49818 49787 0 2:10下午 ttys003 0:00.00 grep date_for_file
Tips:
- 可以加入 python test.py & 让程序后台执行
- 可以把程序写进shell 脚本里批量后台执行
shell脚本实现
进程挂掉后重启, 并打印重启后的进程id
#!/bin/sh
while true;
do
count=ps -ef|grep 进程名|grep -v grep
if [ "$?" != "0" ];then
echo ">>>>start run it"
启动进程命令
$new_pid=pgrep -f 进程名
echo ">>>>new pid $(new_pid)”
fi
sleep 5
done
网友评论