在 Debian(以及大多数 Linux 发行版)上“守护/守护后台进程”通常指让进程长期稳定运行、崩溃可重启、开机自启、日志可控。下面按「从轻量到专业」给出几种常见做法。
Debian 8+ 默认使用 systemd,这是首选方案。
sudo nano /etc/systemd/system/myproc.service
示例:
[Unit]
Description=My Background Process
After=network.target
[Service]
ExecStart=/usr/bin/python3 /opt/myproc/main.py
WorkingDirectory=/opt/myproc
User=myproc
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reexec
sudo systemctl enable myproc
sudo systemctl start myproc
sudo systemctl status myproc
journalctl -u myproc -f
✅ 优点:
nohup python3 main.py > out.log 2>&1 &
setsid python3 main.py
⚠️ 缺点:
sudo apt install supervisor
配置:
[program:myproc]
command=python3 /opt/myproc/main.py
autostart=true
autorestart=true
stderr_logfile=/var/log/myproc.err.log
stdout_logfile=/var/log/myproc.out.log
sudo supervisorctl reload
✅ 适合:
npm install -g pm2
pm2 start app.js
pm2 save
pm2 startup
即使进程在运行,也可能:
可配合:
Restart=on-failureuseradd -r myproc| 场景 | 推荐 |
|---|---|
| 生产服务器 | systemd |
| 容器 | supervisor / entrypoint |
| Node 项目 | pm2 |
| 临时任务 | nohup |
如果你愿意,可以告诉我:
我可以帮你写一份可直接用的 systemd 配置。