温馨提示×

如何后台运行linux进程

小樊
70
2026-09-03 11:21:57
栏目: 智能运维

在 Linux 中,“后台运行进程”通常有以下几种常见方式和场景,按使用频率和适用场景整理给你:


一、最基础:命令后加 &

command &
  • 进程在当前终端后台运行
  • 关闭终端 → 进程会被终止(收到 SIGHUP)

示例:

python train.py &

查看后台任务:

jobs

放回前台:

fg %1

二、免受终端关闭影响:nohup

nohup command &
  • 忽略 SIGHUP
  • 终端关闭后进程仍在运行
  • 默认输出到 nohup.out

示例:

nohup python train.py > log.txt 2>&1 &

三、推荐方式:setsid

setsid command
  • 直接新建会话
  • 完全脱离终端
  • 比 nohup 更干净

示例:

setsid python train.py > log.txt 2>&1

四、终端复用(最推荐):tmux / screen

tmux(强烈推荐)

tmux
# 在 tmux 里运行
python train.py
# 退出但保持运行
Ctrl+B D

重新连接:

tmux attach

优点:

  • 可随时查看输出
  • 网络断开也不影响
  • 可多窗口管理

五、系统级后台(服务)

适合长期运行程序:

sudo systemctl start myservice

或写 service 文件(生产环境推荐)


六、进程管理工具(进阶)

  • disown:让已有后台进程不受终端影响
command &
disown
  • supervisor:进程守护
  • docker:容器化运行

选择建议

场景 推荐
临时跑一下 &
怕关终端 nohup / setsid
长期 / 训练任务 tmux
生产服务 systemd

如果你有具体命令或场景(比如训练模型、跑脚本、服务器部署),我可以给你更精确的写法。

0 踩