以下步骤将 Python 脚本 /opt/myservice/app.py 注册为名为 MyService 的系统服务。
11.4 将 Python 脚本安装为后台服务(MyService)
子章节
步骤 1:准备 Python 脚本
假设脚本路径为 /opt/myservice/app.py,内容示例:
#!/usr/bin/env python3
import time
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
filename='/var/log/myservice.log'
)
def main():
logging.info("MyService started")
while True:
logging.info("Service is running...")
time.sleep(60)
if __name__ == "__main__":
main()
步骤 2:创建 systemd 服务文件
sudo vim /etc/systemd/system/MyService.service
写入以下内容:
[Unit]
Description=MyService - Python Background Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/myservice
ExecStart=/usr/bin/python3 /opt/myservice/app.py
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
步骤 3:重新加载并启动服务
sudo systemctl daemon-reload # 重新加载 systemd 配置
sudo systemctl start MyService # 启动服务
sudo systemctl enable MyService # 设置开机自启
sudo systemctl status MyService # 查看服务状态
步骤 4:管理 MyService
sudo systemctl start MyService # 启动
sudo systemctl stop MyService # 停止
sudo systemctl restart MyService # 重启
sudo systemctl reload MyService # 重载配置
sudo systemctl disable MyService # 取消开机自启
# 查看日志
sudo journalctl -u MyService # 查看 MyService 所有日志
sudo journalctl -u MyService -f # 实时跟踪日志
sudo journalctl -u MyService --since "5 min ago" # 查看最近 5 分钟日志
步骤 5:卸载服务
sudo systemctl stop MyService # 停止服务
sudo systemctl disable MyService # 禁用开机自启
sudo rm /etc/systemd/system/MyService.service # 删除服务文件
sudo systemctl daemon-reload # 重新加载配置