nohup 命令的退出状态码到底看什么

一颗松果
一颗松果
发布时间:2026-08-24| 92人浏览过
原创
通过 $? 查看脚本退出状态的命令流程图
查看退出状态的基本方法把执行脚本与读取上一个命令返回值的顺序关系画清楚。
nohup 与实际程序退出状态关系图
nohup 和退出码是谁的用关系图拆开 nohup、目标程序和退出状态码的职责边界。

前言

在 Linux 里,很多人会把 nohup 和脚本本身的返回结果混为一谈。本文把两者拆开说明,并结合 $? 的用法,帮你快速判断看到的退出状态码究竟来自谁。

在 Linux 命令行里,nohup 常被用来挂起长任务,但它和程序本身的执行结果不是一回事。看完这篇你可以直接判断:某个退出状态码到底是 nohup 的,还是后面实际运行的脚本或命令返回的。

nohup 本身不负责业务结果

nohup 并没有一个单独值得重点讨论的“业务退出状态码”。它更像是一个启动器:把命令放到后台或忽略挂断信号后,自己的工作就结束了。

真正决定执行成功还是失败的,是写在 nohup 后面的那个程序。也就是说,nohup 负责把命令启动起来,至于程序最终跑得怎么样,仍然要看程序自己的返回结果。

退出状态码到底表示什么

退出状态码是程序执行结束后返回给系统的一个整数,用来说明执行结果。通常情况下,0 表示成功,非零值表示出错。

至于非零值具体代表什么,不同程序的定义并不完全一样。常见情况下,1 可能表示通用错误,2 可能表示参数错误,127 也常见于命令未找到这类问题;准确含义还是要看对应程序的文档或源代码。

怎么查看命令返回值

如果你想确认脚本执行后返回了什么状态码,可以直接查看上一个命令的结果,例如:

./my_script.sh
echo $?

$? 会立即取出上一个命令的退出状态码。上面这个例子里,它捕获的是 my_script.sh 的返回值:如果脚本正常结束,输出通常是 0;如果执行中出错,则会看到 1、127 等非零数字,具体取决于脚本里的错误处理逻辑。

因此,讨论“nohup 的退出状态码”时,关键不是把它当成结果本身,而是先分清谁在返回结果:多数情况下,你真正需要看的,是目标程序的退出码。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。