问题标签 [exitstatus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
9409 浏览

bash - 为什么我的脚本在命令后突然退出?

我正在尝试按照以下说明为 Dash 生成文档集:http: //kapeli.com/docsets。问题是,脚本在 wget 之后不会继续,并且似乎不会引发任何错误。当我将脚本复制到终端时,一切正常。

我使用的是 MacOS 10.8.4 和默认的 bash。

我查看了其他帖子,例如My shell script stop after exec但我没有exec在这里使用。

为什么脚本会退出?

0 投票
3 回答
901 浏览

bash - 如何跟踪 bash 脚本 - 退出状态及其失败的原因

有时我需要像这样运行命令:

超过大文件(2-32 GB 大小)。我在晚上启动命令,当我早上来的时候,output.txt 有时是空的,并且进程不再运行。

请问,我怎样才能跟踪正在发生的事情?为什么以及何时我的命令失败了?我知道管道正在工作,因为有时它只是成功完成。

非常感谢!

更新:我现在认为我的进程已被终止,因为我在运行此计算时建议服务器仅用于交互式使用。如果这是真的,我只能从日志文件中看到它没有成功 - 还没有完成。

有没有办法找出我的进程实际上被杀死了?谢谢。

0 投票
1 回答
46 浏览

executable - 是否有任何保留空间形式的自定义应用程序错误代码?

我们需要定义一些特定于应用程序的错误代码(退出状态)。我们的用例:卸载程序调用应用程序进行在线停用,这可能由于多种原因而失败(没有互联网,内部服务器错误,...)。是否为应用程序特定的错误代码保留任何时间间隔,因此没有任何机会干扰?

谢谢

0 投票
3 回答
121158 浏览

linux - linux命令返回的退出状态1的含义

linux命令返回的退出状态1是什么意思?像 127 退出状态表示“找不到命令”。

我访问过http://linux.die.net/abs-guide/exitcodes.html页面,是不是表示退出状态 1 没有特别的意义?

0 投票
2 回答
791 浏览

bash - 速记增量符号的 Bash 退出状态

我注意到bash符号的返回状态明显不一致。 考虑以下(( ))

然而,使用其他众所周知的速记增量符号会产生:

如果set -e脚本中有内置函数,则第二种表示法将导致脚本退出,因为((A++))返回的退出状态非零。这个问题或多或少在这个相关问题中得到了解决。但这似乎并不能解释这两种符号的退出状态的差异,((A=A+1))并且((A++))

((A++))1当且仅当Aequals似乎返回0。(免责声明:我没有做过详尽的测试。在 bash 4.1.2 和 4.2.25 中测试过)。所以最后一个问题归结为:

为什么A=0; ((A++))返回1

0 投票
1 回答
726 浏览

tee - tee>(...) 的退出状态

我正在执行:

我希望Command2根据grep的退出状态执行,而在当前配置中,它是根据tee的结果执行的。

据我所知 pipefail 和 pipestatus 在这里不起作用(如果我错了,请纠正我)。

基于 Alexej Answer 修改 Origian 问题

我也试过Command1 | tee >(grep sth || Command2)了,这适用于我原来的问题,但是当我试图在子shell中设置我的测试状态时;例如,Command 1 | tee>(grep sth || Result="PASSED")以后可以访问我代码的其他块中的结果。所以我还是有问题。

谢谢

0 投票
0 回答
128 浏览

c++ - waitpid 的早期调用未正确收集退出状态


我正在使用以下代码来分叉一个进程并发出信号让它稍后停止。

此代码打印(如预期):
给测量过程一些时间来清理。
完成测量。
测量过程返回 42。

但是,如果我在 kill 语句之后省略 sleep 语句,我会得到:
给测量过程一些时间来清理。
测量过程由信号 80 终止。
完成测量。

为什么结果取决于我是否等待三秒钟?waitpid 不应该等到孩子回来吗?这对我的应用程序(现在)并不重要,但我想了解如何正确地做到这一点。我想通知子进程停止,然后等到它“正确”完成。

谢谢你的帮助,
卢茨

0 投票
4 回答
1373 浏览

multithreading - 如何获取线程的退出状态

我正在编写一个 perl 脚本来从父进程获取每个线程的退出状态。如果我使用 join() 我无法获得线程正确的退出状态。

如何从父进程捕获每个线程的退出状态?

这是代码

0 投票
1 回答
693 浏览

bash - Bash 脚本中命令的退出状态始终为真

我正在尝试在 bash 中运行命令( gerrit query )并将其分配给变量。我正在使用这是一个 bash 脚本文件,并且我想处理如果命令抛出错误(即如果 gerrit 查询失败)的情况,我应该能够处理相同的情况。

例如:

我知道我可以使用 $? 检查最后的退出状态?在 bash 中,但对于上述情况,对变量的赋值会覆盖早期的退出状态(即 gerrit 查询失败状态),并且上述命令永远不会失败。它总是正确的。

你能告诉我是否有办法处理命令的退出状态,即使它被分配给 bash 中的变量。

更新:
我在这里的假设是错误的,即分配导致退出状态被覆盖,而查尔斯的例子和他的回答中的解释是正确的。退出状态被覆盖的真正原因是我将上述命令的输出传送到 sed 脚本,这是覆盖退出状态的罪魁祸首。我发现以下内容帮助我解决了这个问题。https://unix.stackexchange.com/questions/14270/get-exit-status-of-process-thats-piped-to-another/73180#73180 在 Bash 中管道输出和捕获退出状态

我正在尝试的完整命令。

变量=ssh -p $GERRIT_PORT_NUMBER $GERRIT_SERVER_NAME gerrit query --current-patch-set $PATCHSET_ID | sed 's/message//'

0 投票
1 回答
913 浏览

makefile - 启动服务器,运行测试,停止服务器

我有一个 Makefile 目标,如下所示

这就是我正在做的事情:

  • Java 命令启动 Amazon DynamoDB 的本地实例。
  • 我给它 3 秒开始
  • 我运行我的集成测试
  • 我杀了数据库

我想要的是杀死数据库,不管测试是否通过。为此,我想我需要 test 命令的退出状态并返回它,无论是测试失败还是成功。

正在发生的事情是,如果测试通过,则数据库被正确杀死,如果测试失败,则不是。

在文档中读到,如果它产生非零退出状态,您可以-在命令前面添加一个忽略它的命令,make如果我这样做的问题是我不知道测试是否失败,因为$?将始终返回 0。

在这种情况下,通常的做法是什么?如果可以解决我的问题,我可以将目标拆分为更多目标。

谢谢你。