温馨提示×

ubuntu如何后台运行进程

小樊
40
2026-10-03 20:47:02
栏目: 智能运维

在 Ubuntu 中,有多种方式可以让进程在后台运行,下面按常见程度和场景给你总结一下。


一、最基础:命令行后台运行(当前终端)

1. 使用 &

command &

例如:

python app.py &
  • 进程在后台运行
  • 关闭终端会终止进程

2. 使用 nohup(推荐新手)

nohup command > output.log 2>&1 &

示例:

nohup python app.py > app.log 2>&1 &
  • 忽略挂断信号(关终端不退出)
  • 输出写入 app.log

二、终端退出也不受影响(推荐)

3. 使用 setsid

setsid command

或:

setsid python app.py > app.log 2>&1
  • 完全脱离终端
  • 比 nohup 更干净

三、会话管理工具(强烈推荐)

4. screen

screen
python app.py
  • Ctrl + A 然后 D: detached(后台)
  • 重新进入:
screen -r

查看所有 screen:

screen -ls

5. tmux(更现代,推荐)

tmux
python app.py
  • Ctrl + B 然后 D: detach
  • 重新连接:
tmux attach

四、系统级后台运行(服务器常用)

6. systemd 服务(生产环境首选)

创建服务文件:

sudo vim /etc/systemd/system/myapp.service

示例:

[Unit]
Description=My App

[Service]
ExecStart=/usr/bin/python3 /home/user/app.py
WorkingDirectory=/home/user
Restart=always

[Install]
WantedBy=multi-user.target

启用:

sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp

查看状态:

systemctl status myapp

五、查看和管理后台进程

jobs        # 当前 shell 的后台任务
ps aux | grep 进程名
kill PID

推荐选择总结

场景 推荐方式
临时测试 & / nohup
长时间运行 tmux / screen
服务器生产 systemd

如果你能告诉我具体要跑什么程序(Python?Docker?训练任务?),我可以给你最合适的命令。

0 踩