当前位置:首页>Linux>Linux系统后台运行应用三板斧

Linux系统后台运行应用三板斧

  • 2026-08-28 18:35:07
Linux系统后台运行应用三板斧

第一板斧:& 符号(直接后台运行)

在命令末尾添加 &,将进程放入后台运行:

python app.py &

特点:

立即返回终端控制权

输出仍会显示在当前终端

关闭终端或退出登录可能导致进程终止(除非配合 nohup)

查看后台任务:

jobs -l

将后台任务调回前台:

fg %任务号

第二板斧:nohup(脱离终端运行)

使用 nohup 使进程忽略挂断信号,搭配 & 实现完全后台运行:

nohup python app.py > output.log 2>&1 &

参数解释:

nohup:忽略挂断信号(SIGHUP)

> output.log:将标准输出重定向到文件

2>&1:将标准错误合并到标准输出

&:放入后台运行

查看进程:

ps aux | grep app.py

终止进程:

pkill -f app.py   # 或 kill PID

**第三板斧:screen / tmux(终端复用器)

创建虚拟终端会话,即使断开 SSH 连接进程仍继续运行:

screen 用法:

screen -S session_name  # 创建新会话
python app.py           # 在会话中运行程序
Ctrl + A, D             # 分离会话(程序在后台运行)
screen -ls# 查看所有会话
screen -r session_name  # 恢复会话

tmux 用法(更现代):

tmux new -s session_name  # 创建会话
python app.py             # 运行程序
Ctrl + B, D               # 分离会话
tmux ls# 查看会话
tmux attach -t session_name  # 恢复会话

进阶选择:systemd(生产环境推荐)

对于需要持续运行的服务,建议使用 systemd 管理:

sudovim /etc/systemd/system/myapp.service

配置文件示例:

[Unit]
Description=My Application

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/python app.py
Restart=always  # 崩溃时自动重启

[Install]
WantedBy=multi-user.target

常用命令:

sudo systemctl start myapp    # 启动
sudo systemctl status myapp   # 查看状态
sudo systemctl enable myapp   # 设置开机自启

场景选择指南

  1. 临时测试:使用 & 或 nohup

  2. 交互式长任务:使用 screen/tmux

  3. 生产环境服务:使用 systemd 或 supervisor

  4. 容器环境:使用 Docker 等容器编排工具

注意事项

  • 使用 & 时,建议重定向输出避免干扰

  • 长时间运行的任务务必搭配 nohup 或终端复用器

  • 生产环境优先考虑进程监控和自动重启机制

  • 注意日志管理和磁盘空间监控

最新文章

随机文章