我想确保我的python脚本始终全天候运行。它在Linux服务器上。如果脚本崩溃,我将通过cron重新启动它。
有没有办法检查它是否正在运行?
答案 0 :(得分:3)
取自answer:
一个bash脚本,它启动你的python脚本并在它没有正常退出时重新启动它:
#!/bin/bash
until script.py; do
echo "'script.py' exited with code $?. Restarting..." >&2
sleep 1
done
然后在后台启动监控脚本:
nohup script_monitor.sh &
多个脚本的编辑:
监控脚本:
cat script_monitor.sh
#!/bin/bash
until ./script1.py
do
echo "'script1.py' exited with code $?. Restarting..." >&2
sleep 1
done &
until ./script2.py
do
echo "'script2.py' exited with code $?. Restarting..." >&2
sleep 1
done &
脚本示例:
cat script1.py
#!/usr/bin/python
import time
while True:
print 'script1 running'
time.sleep(3)
cat script2.py
#!/usr/bin/python
import time
while True:
print 'script2 running'
time.sleep(3)
然后启动监控脚本:
./script_monitor.sh
这将在后台为每个python脚本启动一个监视器脚本。
答案 1 :(得分:1)
尝试此操作并输入您的脚本名称。
ps aux | grep SCRIPT_NAME
答案 2 :(得分:1)
check_process.sh
)
ps
命令查找python脚本的进程ID。
将其保存在变量说pid
pid
,请退出循环并向您的mail_id
发送邮件,说明该进程未运行。现在通过check_process.sh
致电nohup
,以便它会在后台持续运行。
我实现了它,并记住它工作正常。
答案 3 :(得分:1)
您可以使用
不要用脚本破解这个
答案 4 :(得分:1)