在 Linux 中,“后台运行进程”通常有以下几种常见方式和场景,按使用频率和适用场景整理给你:
&command &
示例:
python train.py &
查看后台任务:
jobs
放回前台:
fg %1
nohupnohup command &
nohup.out示例:
nohup python train.py > log.txt 2>&1 &
setsidsetsid command
示例:
setsid python train.py > log.txt 2>&1
tmux / screentmux
# 在 tmux 里运行
python train.py
# 退出但保持运行
Ctrl+B D
重新连接:
tmux attach
优点:
适合长期运行程序:
sudo systemctl start myservice
或写 service 文件(生产环境推荐)
disown:让已有后台进程不受终端影响command &
disown
supervisor:进程守护docker:容器化运行| 场景 | 推荐 |
|---|---|
| 临时跑一下 | & |
| 怕关终端 | nohup / setsid |
| 长期 / 训练任务 | tmux |
| 生产服务 | systemd |
如果你有具体命令或场景(比如训练模型、跑脚本、服务器部署),我可以给你更精确的写法。