shell脚本-监控python进程是否在运行,没有则重启jingdong_prices_run.py 并发送邮件告知重启时间,否则不重启不发送邮件
*/5 * * * * sh /data/jingdong-app-spider-py/shell/check-jingdong-goods-run.sh >/store/logs/jingdong-app-spider-py/startpy.log 2>&1
check-jingdong-goods-run.sh
#!/bin/bash
echo "开始检查京东商品jingdong_prices_run程序是否运行..."
cd /data/jingdong-app-spider-py/test
processID=$(ps -ef | grep jingdong_prices_run.py | grep -v "grep" | awk "{print $2}")
echo $processID
# 判断$processID为空,此处意思为如果$processID为空,那么重启
if [ -z "$processID" ]
then
# 启动京东商品jingdong_prices_run程序
echo "京东商品jingdong_prices_run程序未运行, 重新启动中..."
#nohup python3 jingdong_prices_run.py >/dev/null &
nohup python3 jingdong_prices_run.py >/store/logs/jingdong-app-spider-py/nohup.out &
echo "jingdong_prices_run京东商品重启成功..."
# 发送邮件 获取当前ip
ipAdress=$(curl httpbin.org/ip)
echo $ipAdress
nohup python3 /data/jingdong-app-spider-py/common/send_email.py "jingdong_prices_run京东商品程序重启成功..." "${ipAdress}"
else
echo "jingdong_prices_run京东商品程序正在运行中..."
#nohup python3 jingdong_prices_run.py >/store/logs/jingdong-app-spider-py/jingdong_data/date +%F/startpy.log &
#echo "jingdong_prices_run京东商品程序重启成功..."
# 发送邮件
#ipAdress=$(curl httpbin.org/ip)
#echo $ipAdress
#python3 /opt/gh2/app/jingdong-app-spider-py/common/send_email.py "jingdong_prices_run京东商品同步程序重启成功..." "${ipAdress}"
fi
# ps -ef 展示进程
# | grep your_keywords 按关键字筛选
# | grep -v “grep” 屏蔽grep程序本身的进程
# | awk ‘{print $2}’ 只打印第二列
# process_id=${语句} 将语句执行的返回值赋值给process_id,注意等号前后不能有空
# [ -z "$process_id”] 判断$process_id为空
# [[ -z "$process_id”]] 判断$process_id不为空 , 注意这里前后有两个中括号,Shell的这个语法有点奇怪
# kill -9 $process_id 杀掉变量$process_id指定的进程
shell脚本-监控python进程是否在运行,没有则重启jingdong_prices_run.py 并发送邮件
原文:https://www.cnblogs.com/gqv2009/p/13179075.html