繁体   English   中英

如果结束,重新启动python脚本的最佳方法是什么? (Ubuntu 18.04)

[英]Best way to restart python script if it ends? (Ubuntu 18.04)

我有一些用 Python 编写的 Discord 机器人,它们会在几个小时后因任何原因停止。 我想要一种方法来监视它们并在它们出现故障时重新启动它们。 我已经寻找了一些解决方案,包括 bash 脚本、crontab 和 systemd,但它们似乎都不适合我。

即使使用简单而真实的 bash 脚本,它也会由于某种原因而失败。 由于我认为是环境问题,crontab 不会运行,显然 systemd 仅适用于服务?

所有的python脚本都位于/home/username/folder/script.py

我还希望能够轻松暂停重新启动脚本的服务,因为有时我必须使用 git 更新代码。

我想出了如何用 systemd 解决我的问题。

首先导航到:

/etc/systemd/system

然后以 root 身份创建一个新服务:

sudo nano example.service

使您的服务文件像这样:

[Unit]
Description=Restarts example.py if it closes

[Service]
User=your username
WorkingDirectory=/directory/of/script
ExecStart=/usr/bin/python3 /directory/of/script/example.py
Restart=always

[Install]
WantedBy=multi-user.target

然后输入这个让 systemd 重新加载服务文件。

sudo systemctl daemon-reload

然后你可以启动你的服务:

sudo systemctl start example.service

最后,检查您的服务的状态:

sudo systemctl status example.service

monit 将满足您的需求,您可以将其配置为监控您的 python 脚本并在失败时重新启动它们。

配置起来有点快

参考: https : //mmonit.com/monit/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM