服务器意外重启之后,服务也自动重启
Systemd
是现代Linux系统中管理系统服务的主要方式。我们可以通过创建一个 Systemd 服务来确保服务器重启后自动启动Python服务。
1.创建 Systemd 服务文件
在 /etc/systemd/system/
目录下创建一个新的服务文件,例如 speaker.service
。
sudo nano /etc/systemd/system/speaker.service
2.配置服务文件
在服务文件中,添加以下内容,确保路径和命令与实际环境相符:
[Unit]
Description=Speaker Flask Service
After=network.target
[Service]
User=your_username # 替换为实际的用户名
WorkingDirectory=/path/to/your/project # 替换为项目的实际路径
Environment="PATH=/home/your_username/anaconda3/envs/speaker/bin"
ExecStart=/home/your_username/anaconda3/envs/speaker/bin/python /path/to/your/project/voice_flask2.py
Restart=always # 自动重启服务
RestartSec=10 # 重启延迟时间为10秒
Environment=CUDA_VISIBLE_DEVICES=2 # 设置环境变量
[Install]
WantedBy=multi-user.target
完成编辑后,按 Ctrl + O
保存文件,然后按 Ctrl + X
退出 nano
编辑器。
3.重新加载 Systemd 配置
在添加或修改服务文件后,需要告诉 systemd
重新加载配置:
sudo systemctl daemon-reload
4.启动并启用服务
sudo systemctl start speaker.service
在系统启动时自动启动服务(推荐)
sudo systemctl enable speaker.service
5.查看服务状态
sudo systemctl status speaker.service
6.日志查看
journalctl -u speaker.service
sudo journalctl -u speaker.service -o cat
7.停止服务
sudo systemctl stop speaker.service
8.取消自启动
sudo systemctl disable speaker.service