菜单

kaoqi
kaoqi
发布于 2026-10-16 / 11 阅读
0
0

本地部署systemctl开机命令

根据之前的描述,我们存在多个原本运行在nohup上的后端服务命令:

nohup python3 /home/ubuntu/file_server.py > /dev/null 2>&1 &
nohup python3 /home/ubuntu/files/file_share_server/app.py > /dev/null 2>&1 &

我们需要把他们加入到systemctl的开机启动项里去:

vim /etc/systemd/system/kaoqi.services

然后写入systemctl文件配置:


[Unit]
Description=KaoqiApplicationServicesFengHuo
# 确保在网络启动后再运行,避免依赖网络的服务启动失败
After=network.target

[Service]
# 类型说明:
# simple: 默认值,ExecStart 启动的进程即为主进程(适用于大多数 Python/Node/Java 程序)
# forking: 适用于传统守护进程(父进程 fork 后退出,如某些 C/C++ 服务)
Type=simple

# 【关键】直接执行原命令,去掉 nohup 和 &
# 如果命令包含重定向 (> log) 或管道 (|),需要用 sh -c 包裹
ExecStart=/usr/bin/python3 -m http.server 8110 --bind 0.0.0.0 --directory /home/ubuntu/fenghuo

# 重启策略
# on-failure: 仅在非正常退出(如崩溃、被杀)时重启
# always: 无论何种原因退出都重启
Restart=on-failure
RestartSec=5

# 日志输出配置
# 推荐设置为 journal,通过 journalctl 查看,方便统一管理
StandardOutput=journal
StandardError=journal

[Install]
# 多用户文本模式下的目标,即开机自启的标准目标
WantedBy=multi-user.target

然后使用systemctl命令启动并检查状态:

# 1. 重载 systemd 配置(每次修改 .service 文件后必须执行)
sudo systemctl daemon-reload

# 2. 设置开机自启
sudo systemctl enable kaoqi.service

# 3. 立即启动服务
sudo systemctl start kaoqi.service

# 4. 检查服务状态
sudo systemctl status kaoqi.service

重启服务器后检查进程已启动:


评论