重启python脚本的最佳方法(如果结束)? (Ubuntu 18.04)

时间:2018-08-19 03:09:06

标签: python ubuntu-18.04

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

即使使用一个简单而真实的bash脚本,它也会由于某些原因而崩溃。由于我认为是环境问题,因此crontab无法运行,显然systemd仅用于服务吗?

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

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

2 个答案:

答案 0 :(得分:1)

我想出了如何用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

答案 1 :(得分:0)

monit会满足您的需求,您可以对其进行配置以监视python脚本,并在失败时重新启动它们。

可以快速配置

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