.py程序在中断时如何自动重启
时间: 2023-12-12 14:05:45 浏览: 30
在 Python 中,你可以使用一些库来实现程序中断时的自动重启。其中最常用的是 supervisor 和 systemd。
使用 supervisor:
1. 首先安装 supervisor:
```
sudo apt-get install supervisor
```
2. 创建一个新的 supervisor 配置文件,比如 `myprogram.conf`:
```
sudo nano /etc/supervisor/conf.d/myprogram.conf
```
3. 在该文件中,配置你的程序信息:
```
[program:myprogram]
command=/usr/bin/python /path/to/your/program.py
autostart=true
autorestart=true
stderr_logfile=/var/log/myprogram.err.log
stdout_logfile=/var/log/myprogram.out.log
```
4. 保存并关闭该文件,然后重新加载 supervisor 配置:
```
sudo supervisorctl reread
sudo supervisorctl update
```
之后,当你的程序意外退出时,supervisor 将自动重启它。
使用 systemd:
1. 首先创建一个新的 systemd 服务文件,比如 `myprogram.service`:
```
sudo nano /etc/systemd/system/myprogram.service
```
2. 在该文件中,配置你的程序信息:
```
[Unit]
Description=My Program
After=network.target
[Service]
ExecStart=/usr/bin/python /path/to/your/program.py
Restart=always
User=yourusername
Group=yourgroupname
[Install]
WantedBy=multi-user.target
```
3. 保存并关闭该文件,然后重新加载 systemd 配置:
```
sudo systemctl daemon-reload
sudo systemctl enable myprogram
sudo systemctl start myprogram
```
之后,当你的程序意外退出时,systemd 将自动重启它。