如何检查python脚本是否已启动?

如何检查python脚本是否已启动?,python,linux,python-3.x,Python,Linux,Python 3.x,我想确保我的python脚本始终在全天候运行。它在Linux服务器上。如果脚本崩溃,我将通过cron重新启动它 有没有办法检查它是否正在运行?试试这个,然后输入脚本名称 ps aux| grep脚本|u名称 创建一个脚本,比如check_process.sh,它将 使用ps命令查找python脚本的进程id。 将其保存在变量中,例如pid 创建一个无限循环。在它里面,搜索您的流程。如果发现,则睡眠30或60秒,然后再次检查。 如果找不到pid,则退出循环并向您的mail_id发送邮件,说明进程未

我想确保我的python脚本始终在全天候运行。它在Linux服务器上。如果脚本崩溃,我将通过cron重新启动它


有没有办法检查它是否正在运行?

试试这个,然后输入脚本名称

ps aux| grep脚本|u名称

创建一个脚本,比如check_process.sh,它将 使用ps命令查找python脚本的进程id。 将其保存在变量中,例如pid 创建一个无限循环。在它里面,搜索您的流程。如果发现,则睡眠30或60秒,然后再次检查。 如果找不到pid,则退出循环并向您的mail_id发送邮件,说明进程未运行。 现在通过nohup调用check_process.sh,这样它将在后台连续运行

我很早就实现了它,并且记得它工作得很好。

您可以使用

runit 监督人 莫尼特 我想是系统的 不要用Ubuntu上的脚本来破解这个问题,该脚本将监视您的进程,并在进程崩溃时重新启动。我相信我也会这样做。无需对其进行重新设计。

摘自:

一个bash脚本,用于启动python脚本并在其未正常退出时重新启动:

#!/bin/bash
until script.py; do
    echo "'script.py' exited with code $?. Restarting..." >&2
    sleep 1
done
然后在后台启动监视器脚本:

nohup script_monitor.sh &
编辑多个脚本:

监视脚本:

./script_monitor.sh
脚本示例:

然后启动监视器脚本:

./script_monitor.sh

这将在后台为每个python脚本启动一个监视脚本

为什么不使用supervisord呢?正如Benjamin所说,用脚本来破解这个问题并没有什么本质上的错误,特别是如果你使用的是手卷/轻型/嵌入式发行版,但如果你使用的是主流版本,那么最好学习现有的工作设施。在最新的发行版上,几乎在任何地方都可以使用,如果需要支持较旧的发行版,可以使用5种不同的方法。此外,这更像是一个面向superuser.com的问题。1如果我需要监控3个python脚本,我将如何做到?2我的python脚本是否必须返回任何值,以便sh脚本能够识别python脚本已崩溃?
./script_monitor.sh