在 Debian(以及大多数 Linux 发行版)中,有几种常见方式可以让进程在后台运行,即使你退出终端也不中断。下面按常用程度和适用场景介绍。
&command &
示例:
python3 server.py &
查看后台任务:
jobs
nohupnohup command > output.log 2>&1 &
示例:
nohup python3 server.py > app.log 2>&1 &
setsidsetsid command
示例:
setsid python3 server.py
SIGHUP 影响nohup 更“干净”screenscreen
# 在 screen 中运行命令
python3 server.py
离开(保持运行):
Ctrl + A, 然后 D
重新连接:
screen -r
查看会话:
screen -ls
✅ 适合长期交互式任务
tmux(更现代)tmux
python3 server.py
脱离:
Ctrl + B, 然后 D
重新进入:
tmux attach
✅ 功能比 screen 强,推荐服务器使用
systemd(服务方式)创建服务文件:
sudo nano /etc/systemd/system/myservice.service
内容示例:
[Unit]
Description=My App
[Service]
ExecStart=/usr/bin/python3 /home/user/server.py
WorkingDirectory=/home/user
Restart=always
[Install]
WantedBy=multi-user.target
启用并启动:
sudo systemctl enable myservice
sudo systemctl start myservice
查看状态:
systemctl status myservice
✅ 最稳定、可开机自启、自动重启
ps aux | grep command
或:
top
htop
| 场景 | 推荐方式 |
|---|---|
| 临时后台 | & |
| 简单持久 | nohup / setsid |
| 交互任务 | screen / tmux |
| 生产服务 | systemd |
如果你是具体某个程序(如 Python、Node、Java),可以告诉我,我可以给你更精确的命令。