当前位置: 首页 > news >正文

Linux 后台任务详解:、nohup、jobs、systemd 的区别

Linux 后台任务详解:&、nohup、jobs、systemd 的区别

1. 前言

在 Linux 中,我们经常需要让程序在后台运行。

常见场景:

  • 后台执行脚本;
  • 退出 SSH 后程序继续运行;
  • 让服务开机自启;
  • 查看后台任务;
  • 把程序做成系统服务。

常见工具有:

&nohupjobsfgbgsystemd

本文重点讲清楚它们的区别和使用场景。


2. 前台任务和后台任务

默认运行命令时,任务在前台执行。

sleep100

此时终端会被占用。
命令结束前,不能继续输入其他命令。

如果想后台执行,在命令后加&

sleep100&

输出类似:

[1] 12345

含义:

内容含义
[1]当前 shell 中的任务编号
12345进程 PID

3. jobs:查看当前 shell 的后台任务

查看后台任务:

jobs

示例:

[1]+ Runningsleep100&

注意:

jobs 只能查看当前 shell 管理的任务。

如果重新打开一个终端,原来终端里的 jobs 不会显示在新终端中。


4. fg 和 bg

把后台任务切回前台:

fg%1

暂停前台任务:

Ctrl+Z

暂停后查看:

jobs

可能看到:

[1]+ Stopped python app.py

让暂停任务继续在后台运行:

bg%1

这一套适合临时控制任务。


5. & 的局限

使用:

python app.py&

程序会进入后台。
但是如果关闭终端,程序可能退出。

原因是它仍然和当前终端会话有关。
终端关闭时,系统可能向进程发送SIGHUP信号。

所以:

& 适合临时后台运行,不适合长期服务。

6. nohup:退出终端后继续运行

nohup的作用是让程序忽略挂起信号。

常见写法:

nohuppython app.py>app.log2>&1&

拆开理解:

部分含义
nohup忽略 SIGHUP
python app.py要运行的程序
> app.log标准输出写入日志
2>&1标准错误也写入日志
&后台运行

查看日志:

tail-fapp.log

如果不指定日志文件,默认可能写入:

nohup.out

7. 2>&1 是什么

Linux 中有三个常见文件描述符:

编号含义
0标准输入
1标准输出
2标准错误

命令:

>app.log

等价于:

1>app.log

只重定向标准输出。
如果还想把错误输出也写进同一个文件:

>app.log2>&1

所以完整后台运行常写成:

nohupcommand>app.log2>&1&

8. disown:脱离当前 shell

如果已经用&启动任务:

python app.py&

可以用:

jobsdisown %1

让任务脱离当前 shell 作业管理。
但实际项目中,更建议直接用nohupsystemd


9. systemd:正式服务管理

systemd是现代 Linux 常用的系统服务管理器。
它适合管理长期运行的服务。

常见命令:

systemctl start nginx systemctl stop nginx systemctl restart nginx systemctl status nginx systemctlenablenginx systemctl disable nginx
命令作用
start启动
stop停止
restart重启
status查看状态
enable开机自启
disable取消开机自启

10. 创建 systemd 服务

假设程序路径:

/opt/myapp/app

创建服务文件:

sudovim/etc/systemd/system/myapp.service

内容:

[Unit] Description=My App Service After=network.target [Service] Type=simple WorkingDirectory=/opt/myapp ExecStart=/opt/myapp/app Restart=always RestartSec=3 User=www-data Group=www-data [Install] WantedBy=multi-user.target

重新加载配置:

sudosystemctl daemon-reload

启动服务:

sudosystemctl start myapp

查看状态:

sudosystemctl status myapp

设置开机自启:

sudosystemctlenablemyapp

查看日志:

journalctl-umyapp-f

11. &、nohup、systemd 对比

方式适合场景退出终端是否稳定是否支持开机自启是否方便管理
&临时后台任务不稳定不支持一般
nohup + &长时间脚本较稳定不支持一般
tmux/screen交互式会话稳定不支持适合调试
systemd正式服务稳定支持很方便

选择建议:

临时跑一下:& 退出终端继续跑:nohup 需要交互会话:tmux/screen 正式服务部署:systemd

12. 常见问题

12.1 nohup 启动后马上退出

先看日志:

catapp.logcatnohup.out

常见原因:

  • 工作目录不对;
  • 配置文件路径错误;
  • 端口被占用;
  • 环境变量缺失;
  • 程序启动时报错。

12.2 systemd 手动运行正常,服务运行失败

常见原因是 systemd 环境变量较少,不会自动加载用户的.bashrc

解决思路:

  • 使用绝对路径;
  • 配置WorkingDirectory
  • 配置Environment
  • 指定正确User
  • journalctl -u 服务名看日志。

示例:

Environment=JAVA_HOME=/usr/lib/jvm/java-17 Environment=PATH=/usr/local/bin:/usr/bin:/bin

13. 小结

Linux 后台任务可以这样记:

&:放到当前 shell 后台 jobs:看当前 shell 的任务 fg/bg:前后台切换 nohup:退出终端继续运行 systemd:正式服务管理

常用命令:

command&jobsfg%1bg%1nohupcommand>app.log2>&1&systemctl status myapp journalctl-umyapp-f

如果只是临时执行脚本,用nohup就够。
如果是线上服务,建议写成 systemd 服务。

http://www.jsqmd.com/news/891179/

相关文章:

  • 《多智能体系统实战:我用10个智能体搭建了一个自动赚钱的AI公司》
  • 别再手动改时间了!用timedatectl一条命令搞定Linux时区与NTP同步(Ubuntu/CentOS通用)
  • 2026高口碑普拉提培训机构推荐:优质机构选择指南 - 品牌2025
  • JMeter接口测试中Cookie会话保持的七步实战法
  • 记录一次claude配置知乎mcp经历
  • 佛山黄金回收行业综合实力排名TOP5,2026年5月权威测评榜单 - 生活测评君
  • 简单好用!WinRAR的三种密码保护方式
  • av1编码--编码块的预测约束条件
  • 单图扩散模型实战:多尺度与提示学习实现精准图像编辑
  • 物理生物学研究报告【20260018】
  • Linux 环境变量详解:PATH、export、source 到底是什么?
  • CDR标准体系再添三件套:组网、业务、工程同步落地
  • 百度网盘下载加速终极指南:使用Python工具实现满速下载的完整教程
  • 如何利用组策略精准管控USB与可移动存储设备
  • 系统辨识选最小二乘还是最大似然?一个传感器噪声的例子讲明白
  • 从“飞起来”到“管得好”:2026工程进度低空管理系统供应商推荐 - 品牌2025
  • 3大智能特性重塑象棋辅助体验:视觉识别+实时分析+多平台适配
  • OpenCode + oh-my-openagent 实践全记录
  • 软件测试专栏(10/20):安全测试实战:OWASP Top 10漏洞检测与防护
  • 新鲜出炉!2026高级PDF编辑器推荐排行 专业实测榜单 - 极欧测评
  • 3分钟快速上手:NCBI基因组下载终极指南,让数据获取从未如此简单
  • 2026年5月欧米茄“非官方售后”陷阱深度起底报告 - 资讯纵览
  • 2026 年 5 月在线考试系统哪家靠谱?从功能题库实测推荐 - 讲清楚了
  • PaCE-RL:基于强化学习的ICU患者个性化血糖管理框架解析
  • acbDecrypter:游戏音频文件解密与转换的完整解决方案
  • KaTrain围棋AI训练平台:解锁你的围棋潜能,用AI提升棋力!
  • 【ACM出版、过往最快4.5个月检索】第二届人机交互与机器学习国际学术会议(HCIML 2026) - 每天学术做一点
  • BMEA-ViT:基于多头外部注意力的轻量级乳腺癌病理图像分类模型
  • 旺哥黄金回收(连锁品牌)|2026年5月绵阳黄金回收价格行情+连锁品牌优势+避坑指南+真实案例(涪城/游仙/高新/经开/科创园/安州通用) - 润富黄金珠宝行
  • 软硬件协同验证:从功能等价到需求驱动的两种形式化方法