温馨提示×

linux进程如何后台

小樊
63
2026-08-05 10:57:47
栏目: 智能运维

在 Linux 中让进程在后台运行,常见方法如下(从简单到进阶):


一、最简单:命令后加 &

command &

示例:

sleep 100 &
  • 进程在后台运行
  • 输出仍可能打印到终端
  • 关闭终端时,进程会被终止(除非配合 nohup

二、使用 nohup(最常用 ✅)

nohup command &

示例:

nohup python app.py &
  • 忽略 HUP 信号(终端关闭也不会退出)
  • 输出默认写入 nohup.out
  • 适合长期运行程序

指定输出文件:

nohup command > out.log 2>&1 &

三、使用 disown(已启动的进程)

command &
disown

或:

command &
disown %1
  • 从 shell 作业表中移除
  • 关闭终端不会影响进程

四、使用 screen(推荐用于交互程序)

screen
# 在新窗口中运行程序
python app.py
# 按 Ctrl+A 然后 D 离开

重新连接:

screen -r

常用命令:

screen -ls        # 查看会话
screen -S name    # 创建命名会话

五、使用 tmux(更现代 ✅)

tmux
# 运行程序
python app.py
# Ctrl+B 然后 D 离开

重新连接:

tmux attach

六、使用 systemd(服务器程序 ✅)

例如 /etc/systemd/system/myapp.service

[Unit]
Description=My App

[Service]
ExecStart=/usr/bin/python /opt/app.py
Restart=always

[Install]
WantedBy=multi-user.target

然后:

systemctl daemon-reload
systemctl start myapp
systemctl enable myapp

七、查看后台进程

jobs        # 当前 shell 的后台任务
ps aux | grep command
top / htop

八、前后台切换

Ctrl+Z     # 暂停前台进程
bg         # 放到后台继续运行
fg         # 拉回前台

总结推荐

场景 推荐方式
临时后台 command &
长期运行 nohup command &
交互程序 screen / tmux
服务程序 systemd

如果你有具体命令或场景(如 Java / Python / 训练模型 / 服务器),我可以给你最合适的方案。

0