
## 1. `nohup`（最基础、最老牌）
### 原理
- 让进程**忽略 SIGHUP 信号**
- 即使 SSH 断开，进程也不会被杀掉
### 基本用法
```bash
nohup command > output.log 2>&1 &
```
### 查看进程
```bash
ps aux | grep command
```
### 优点
- 系统自带，几乎所有 Linux 都支持
- 使用简单
- 适合**一次性后台任务**
### 缺点
- ❌ 无法重新“接回”终端
- ❌ 不适合交互式程序
- 日志只能看文件
### 适用场景
- 简单脚本
- 临时跑任务
- 不需要再交互的程序
---

## 2. `screen`（经典终端复用工具）
### 原理
- 创建一个**虚拟终端会话**
- SSH 断开后，会话仍然存在
### 常用命令
```bash
screen                 # 创建会话
screen -S mysession    # 创建并命名
screen -ls             # 查看会话
screen -r mysession    # 重新连接
```
### 常用快捷键
```
Ctrl + A, D    # 挂起（detach）会话
```
### 优点
- 可以随时断开 / 重连
- 支持交互程序
- 学习成本低
### 缺点
- 操作手感偏老
- 多窗口管理体验一般
- 默认配置不够现代
### 适用场景
- 老服务器
- 临时维护
- 需要简单会话保持
---

## 3. `tmux`（当前主流首选 ⭐）
### 原理
- 终端多路复用器
- 客户端和会话解耦
### 常用命令
```bash
tmux                 # 新建会话
tmux new -s mysession
tmux ls              # 查看会话
tmux attach -t mysession
```
### 常用快捷键（默认前缀 `Ctrl + B`）
```
Ctrl + B, D    # 挂起会话
Ctrl + B, %    # 左右分屏
Ctrl + B, "    # 上下分屏
Ctrl + B, C    # 新窗口
```
### 优点
- ⭐ 非常稳定
- ⭐ 多窗口 / 分屏体验极佳
- ⭐ 支持插件、配置高度可定制
- DevOps / 后端开发事实标准
### 缺点
- 学习成本略高
- 快捷键需要适应
### 适用场景
- 长期运行服务
- 远程开发
- 多任务并行
- 云服务器 / 容器环境
👉 **推荐程度：★★★★★（强烈推荐）**
---

## 4. systemd（服务级别运行）
### 原理
- 让程序作为**系统服务**运行
- 与用户登录状态完全无关
### 示例 service 文件
```ini
[Unit]
Description=My App
After=network.target

[Service]
ExecStart=/usr/bin/python3 /opt/app/app.py
Restart=always
User=appuser

[Install]
WantedBy=multi-user.target
```
### 常用命令
```bash
systemctl daemon-reload
systemctl start myapp
systemctl enable myapp
systemctl status myapp
journalctl -u myapp
```
### 优点
- ⭐ 最稳定
- ⭐ 支持开机自启
- ⭐ 日志统一管理
- ⭐ 自动重启
### 缺点
- 配置相对复杂
- 不适合临时任务
- 不适合需要人工交互的程序
### 适用场景
- 后端服务
- API / 守护进程
- 生产环境
---

## 5. `& disown`（Shell 级技巧）
### 原理
- 后台运行 + 从 shell 作业表中移除
### 用法
```bash
command &
disown
```
### 优点
- 极简
- 不需要额外工具
### 缺点
- 功能非常有限
- 依赖 shell（bash/zsh）
- 不可恢复终端
### 适用场景
- 临时救急
- 已经跑起来的进程不想被关掉
---

## 6. 容器 / 任务管理工具（进阶）
### 常见方式
- Docker / Docker Compose
- Kubernetes Job / Deployment
- Supervisor
### 示例（Supervisor）
```ini
[program:myapp]
command=python app.py
autostart=true
autorestart=true
```
### 适用场景
- 容器化部署
- 集群环境
- 多进程统一管理
---

## 方法对比速览

|方法|是否可重连|交互支持|适合长期运行|推荐度|
|---|---|---|---|---|
|nohup|❌|❌|⚠️|⭐⭐|
|screen|✅|✅|✅|⭐⭐⭐|
|tmux|✅|✅|✅|⭐⭐⭐⭐⭐|
|systemd|❌|❌|⭐⭐⭐⭐|⭐⭐⭐⭐⭐|
|disown|❌|❌|⚠️|⭐|
|容器/调度|❌|❌|⭐⭐⭐⭐⭐|⭐⭐⭐⭐⭐|
