平常在使用服务器的时候,服务一直不稳定,遂从nohup改为创建一个systemd服务来管理Python程序。
要求:有root权限
创建一个新的systemd服务文件,例如/etc/systemd/system/your-service.service:
我的是app.py
那么就创建:/etc/systemd/system/app.service
内容模版如下:
[Unit]
Description=My Python Service
After=network.target
[Service]
ExecStart=/usr/bin/python /home/username/app/your_script.py
Restart=always
User=username
Group=username
Environment=PATH=/usr/bin:/usr/local/bin
WorkingDirectory=/home/username/app
StandardOutput=journal
StandardError=journal
SyslogIdentifier=my-python-service
[Install]
WantedBy=multi-user.target
模版中必须修改的地方有下面三个:
在做出这些更改后,重新加载 systemd 配置并尝试重启服务:
sudo systemctl daemon-reload
sudo systemctl restart app.service
重启systemctl服务完后,程序就能稳定运行了
方法一:查询systemctl服务下所启动服务的状态
sudo systemctl status app.service
注:app.service改为第一步你创建的服务文件
方法二:使用journalctl 工具查询启动服务的日志
journalctl 是一个用于查询和显示从 systemd 日志管理器收集的日志的工具。systemd-journald 服务收集和管理来自内核、启动过程、系统服务以及其他来源的日志信息。这些日志被存储在一个结构化、索引化的二进制文件中,通常位于 /var/log/journal/ 目录下。
journalctl 提供了强大的功能来检索和分析日志数据。它可以用来:
查询指令如下
sudo journalctl -u app.service
注:app.service改为第一步你创建的服务文件