标签: exit-code

如何从Java中的Process运行中获取bash命令退出代码?

我有一个程序是:

import java.io.*;
   import java.util.*;

   public class ExecBashCommand {
     public static void main(String args[]) throws IOException {

       if (args.length <= 0) {
         System.err.println("Need command to run");
         System.exit(-1);
       }

       Runtime runtime = Runtime.getRuntime();
       Process process = runtime.exec("./nv0914 < nv0914.challenge");
       Process process1 = runtime.exec("echo ${?}");
       InputStream is = process1.getInputStream();
       InputStreamReader isr = new InputStreamReader(is);
       BufferedReader br = new BufferedReader(isr);
       String line;

       //System.out.printf("Output of running %s is:", Arrays.toString(args));

       while ((line = br.readLine()) != null) {
         System.out.println(line);
       }

     }
    } 
Run Code Online (Sandbox Code Playgroud)

注意:nv0914是一个bash可执行文件,nv0914.challenge是一个文本文件.当我在终端中运行任何正常命令时,如果我使用后检查退出代码echo ${?}.现在我想通过使用程序来做同样的事情,但程序只是提供输出 …

java unix bash runtime.exec exit-code

5
推荐指数
1
解决办法
7064
查看次数

具有零值的退出代码状态是否始终意味着在Perl中成功运行?

我有一个将执行三个应用程序的Perl脚本.所有这些都有不同的退出代码状态.

第一个应用程序退出代码状态为1.应用程序正常退出,没有任何问题.(成功)

第二个应用程序退出代码状态为99.仍然,应用程序正常退出没有任何问题.(成功)

最后,第三个应用程序退出代码状态为0.与第一个和第二个相同,应用程序正常退出而没有任何问题.(成功)

注意:已将退出代码状态向右移8位.

问题是,如果成功运行,退出代码状态是否总是返回0?

请不要苛刻评论,我只是困惑.请指教.

perl status exit-code return-code exitstatus

5
推荐指数
1
解决办法
7059
查看次数

Java Process.exitValue()中值的含义是什么?

我使用Processvia ProcessBuilder来运行用C代码生成的可执行文件.我正在抓住Process.exitValue()这个退出值的反应.我注意到并非所有退出值都来自可执行文件.例如,我得到退出值139并且在我的C代码中没有任何地方返回139的退出值.

我试图找到退出值的概述,但我找不到这个,现在我发现退出值可以取决于操作系统.(我顺便使用Ubuntu).

一切顺利的时候,唯一可以肯定的退出值是0.是否有关于退出值的规范?我可以确定某个范围只能用于我自己的程序吗?为操作系统保留了哪些退出代码.

我发现139可能是C代码中的内存错误.我想摆脱可能.我无法获得退出值的任何概述(例如139 = .....)

这是简化的代码:

ProcessBuilder p = new ProcessBuilder(executableName,
   executableArguments);
final Process shell = p.start();
InputStream shellIn = shell.getInputStream();
int shellExitStatus = shell.exitValue();
Run Code Online (Sandbox Code Playgroud)

注意:在Ubuntu shell中运行C可执行文件根本不会产生任何错误(即退出值0).但是,在Java中执行相同的命令会退出值139.

java process exit-code

5
推荐指数
1
解决办法
1万
查看次数

在Qt退出申请

我在Qt中构建了一个包含两个按钮的应用程序:退出按钮和导入按钮.按下导入按钮时,屏幕上的滚动区域中会显示一个按钮列表(文件loggers.csv包含数据1; 2; 3; 4; 5;).

这一切都很好,但是当我按下退出按钮(当然应该关闭所有内容)时,应用程序没有正确停止(Qt的停止按钮仍处于活动状态,并且播放按钮不是).当我运行调试器并按下退出按钮时,它会给出一个错误:为RtlFreeHeap(0ADF0000,0028FE40)指定的地址无效.有谁能够帮我?

主要

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainWindow w;

    w.showFullScreen();

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

Mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtGui>
#include "logger.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    QPushButton exit_btn;
    QPushButton import_btn;

private slots:

    void createMenus();
    void exit();
    void import();

private:

    int window_width;
    int window_height;

    int numLoggers;
    int numSelected;

    QVector<Logger*> loggers; …
Run Code Online (Sandbox Code Playgroud)

qt exit-code exit

5
推荐指数
1
解决办法
3万
查看次数

将exec'd批处理文件中的退出代码传播回ant

我需要从蚂蚁那里打电话给sbt.我正在使用"exec"任务执行此操作,如下所示:

  <target name="publish-jar">
    <exec executable="sbt.bat" failonerror="true">
      <arg value="publish"/>
    </exec>
  </target>
Run Code Online (Sandbox Code Playgroud)

如果sbt任务失败,我需要ant任务"失败",这就是使用的原因failonerror="true".但是,这不起作用.当sbt任务失败时,ant不会报告失败的构建.

这看起来像这里讨论的问题: Ant exec resultproperty不起作用.建议的解决方法是从中删除"/ B" sbt.bat.换句话说,改变:

exit /B %ERROR_CODE%
Run Code Online (Sandbox Code Playgroud)

exit %ERROR_CODE%
Run Code Online (Sandbox Code Playgroud)

但是,正如一位评论者所说:

这样做的缺点是,如果直接运行批处理文件进行测试,它将终止你的shell.您可以在批处理文件中使用if和arg来选择\ b,当ant调用它时,正常退出时不选择.

问题: 当发生故障时是否有修复:(1)不终止调用者的shell和(2)将退出代码传播给ant?

更新

这是运行我的ant任务的输出.实际错误在这里并不重要(我故意不配置存储库来发布,强制错误):

C:\dev\la\sdf3\modules\test>ant publish-jar
Buildfile: C:\dev\la\sdf3\modules\test\build.xml

publish-jar:
     [exec] [info] Loading global plugins from C:\Users\jn\.sbt\0.13\plugins
     [exec] [info] Set current project to test (in build file:/C:/dev/la/sdf3/modules/test/)
     [exec] :: loading settings :: file = C:\dev\la\sdf3\modules\ivysettings.xml

     [exec] [info] :: delivering :: com.jn#test;SNAPSHOT ::
SNAPSHOT :: integration :: Fri Mar 14 08:45:58 HST …
Run Code Online (Sandbox Code Playgroud)

windows ant batch-file exit-code sbt

5
推荐指数
1
解决办法
1638
查看次数

如果出现具有退出陷阱的脚本的shell错误,则将退出代码传播给调用者

如果带有EXIT陷阱的Bash脚本中出现语法错误,是否可以将退出代码传播给调用者?例如,如果我有:

#! /bin/bash

set -eu

trap "echo dying!!" EXIT

echo yeah
echo $UNBOUND_VARIABLE
echo boo
Run Code Online (Sandbox Code Playgroud)

然后,即使脚本没有真正成功结束,运行它也会提供退出代码0:

$ bash test.sh
yeah
test.sh: line 8: UNBOUND_VARIABLE: unbound variable
dying!!

$ echo $?
0
Run Code Online (Sandbox Code Playgroud)

但是如果我注释掉退出陷阱,则脚本返回1.或者,如果我使用返回非零(例如/bin/false)的命令替换带有未绑定变量的行,则该退出值将按照我希望的方式传播.

bash exit-code bash-trap

5
推荐指数
2
解决办法
4137
查看次数

应用程序退出,退出代码为-1073740771

我有一个WPF应用程序,有时会退出,退出代码为-1073740771。该问题不会以任何方式发生,并且因系统而异。在某些系统中,此问题的发生率不到总病例数的10%,而在其他系统中,我发现该问题的发生率几乎占总病例的30%。我无法形成任何可靠的复制步骤,而且似乎是随机发生的。

症状包括:单击关闭按钮后,应用程序退出,但是在任务管理器中,我仍然可以看到该过程徘徊了约20-30秒,然后退出。该应用程序似乎正在正常关闭(从功能的角度来看),因此它可能不会对使用它的客户产生太大影响,但是错误代码正在日志中记录,这很烦人。

当我从Visual Studio调试时,也会发生此问题,但是try-catch块中没有异常。

wpf exception exit-code unmanagedresources .net-4.5

5
推荐指数
0
解决办法
1915
查看次数

是否有ServiceBase.ExitCode值的通常含义的列表?

在的文档中ServiceBase.ExitCode,它只是说应将其设置为“在停止服务以指示错误之前...为非零值”。此数字是特定于应用程序的还是标准错误代码及其含义的列表?某处?

.net service windows-services exit-code

5
推荐指数
0
解决办法
715
查看次数

Python的默认退出代码是什么?

假设您的脚本由于某种故障(异常,语法错误)而没有退出,并且脚本由于sys.exit()或而没有退出os._exit(),那么Python如何找出要退出的退出代码?

它似乎是0,这很有意义,因为它表示* nix系统上没有错误。但是,是否总是以0退出(上述情况除外)?令人惊讶的是,经过大量的在线搜索之后,除非另有说明,否则我找不到任何明确表示它将以0退出的内容。

python exit-code

5
推荐指数
2
解决办法
5111
查看次数

Python退出码

在这里快速提问。

当我运行Python脚本(Py 3.7.2)时,我得到了以下代码: Process finished with exit code -1 通常,我希望如此exit code 0,但是为什么会这样-1呢?

亲切的问候

更新!我添加了一些代码,以使您深入了解我的问题。

import numpy as np
import matplotlib.pyplot as plt
from lmfit import Model

def read_datafile(file_name):
    data = np.loadtxt(file_name, delimiter=' ')
    return data

def decomposition2(x, amp, cen, sig, e):
    return float(amp) * (1 + float(e) * (x - float(cen))) / (pow((x - float(cen)), 2) + pow((float(sig) / 2), 2))


for r in range(20, 91, 1):
    dataread = np.loadtxt("S:/Data/Model4/Mod{}.csv".format(r), delimiter=' ',
                          unpack=True)

    x = dataread[0,] …
Run Code Online (Sandbox Code Playgroud)

exit-code pycharm python-3.x

5
推荐指数
1
解决办法
491
查看次数