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

标签 python ubuntu-18.04

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

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

所有的Python脚本都位于 /home/用户名/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

关于python - 如果 python 脚本结束,重新启动的最佳方法是什么? (乌类图18.04),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51914110/

相关文章:

python gtk 循环 ascii 微调器

python - 无法解释 RTSP 身份验证(基本和摘要)

ubuntu-18.04 - CoTurn 服务器在 600 秒后停止媒体

ubuntu-18.04 - 如何在ubuntu-18.04上安装nexus

python - “Rect argument is invalid”

python - Komodo Edit - Django 的代码完成?

python - 在 PyQT5 窗口中嵌入 VTK 对象

python - virtualenvwrapper 错误 : The path python2 (from --python=python2) does not exist

linux - 如何在本地环境之外的远程以 kiosk 模式运行 Ubuntu 系统

tomcat - Jenkins tomcat ssh 权限被拒绝