保持Python参数运行的脚本运行,如果崩溃,则在tmux会话中重新启动

boolean.is.null

我有一个Python脚本,该脚本可以在具有不同参数的多个实例中运行,例如:

python3 proc.py -s -v -l proc_one.log
python3 proc.py -c -v -l proc_two.log

我通常在tmux会话中使用引导脚本会话中启动这些文件,然后手动检查这些文件,以在它们崩溃时重新启动。

tmux new-session -d -s proct 'cd /opt/proct/ && python3 proc.py -s -v -l proc_one.log; bash'
tmux split-window -t proct 'cd /opt/proct/ && python3 proc.py -c -v -l proc_two.log; bash'

这相当繁琐,应该自动化。最近,我遇到了这个解决方案,它提供了我所需要的那种。一个cronjob每隔几分钟运行一次以下bash脚本:

if [[ ! $(pgrep -f '^python3 proc.py -s -v -l proc_one.log') ]]; then
    python3 proc.py -s -v -l proc_one.log
fi

尽管这将使我的脚本保持运行,但也将阻止我在进程中进行表单签入。


我的问题是,如何让脚本检查我的进程是否正在运行,就像上面的进程一样,但是如果它没有运行,请在tmux会话中启动它我不介意tmux针对不同实例进行单独的会话。

用户名

提供服务。

[Unit]
Description=ProcOfMine
After=network-online.target

[Service]
ExecStart=python proc.py --args ok
Restart=always

[Install]
WantedBy=multi-user.target

/lib/systemd/system/proc.service 

还要实现错误处理,以使脚本不会崩溃。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

保持python脚本运行(如果退出则重新启动)

从启动在tmux会话中运行时Python程序崩溃

如何在后台运行 Python 脚本并在崩溃后重新启动它?

grep重新启动脚本(如果未运行)

如果崩溃则重新启动vbs脚本

如果我使用“python -m”运行它,如何重新启动我的 Python 脚本?

重新启动(启动)时运行python脚本

在运行 Flask 会话的情况下从 python 程序中重新启动服务

Bash脚本启动一个分离的tmux会话,运行一个脚本,并使tmux会话保持活动状态

Bash脚本检查屏幕上是否正在运行python脚本-如果没有,则重新启动

检测脚本是否已经在 bash 脚本中运行,如果没有则仅重新启动

bash 中的 Nagios 事件处理程序脚本以重新启动服务,如果未启动,则在满足条件之前不要重新启动下一个

重新启动时运行.sh脚本并使其运行

如何从主python脚本重新启动正在运行的python脚本?

重新启动后还原tmux会话

重新启动后但登录前运行脚本

创建单独的脚本以在单独重新启动后运行

Windows Server重新启动后运行批处理脚本

在重新启动电源关闭之前运行脚本

安装脚本以运行,然后重新启动并继续

在重新启动时运行python脚本的Cron作业不起作用

Python-在后台运行的无限循环脚本+重新启动

永远重新启动并永远运行Python脚本(Node.JS模块)

如何使服务器上运行的Python脚本在连接断开后自动重新启动?

运行新脚本时如何防止python IDLE重新启动

在不重新启动Spyder的情况下无法两次运行Python脚本

在crontab中运行脚本-重新启动:找不到命令

重新启动Docker容器是否“记住”初始运行参数?

如果为true,则在新屏幕中运行脚本