Java Linux上错误代码24的含义是什么?

Java Linux上错误代码24的含义是什么?,java,python,linux,error-code,Java,Python,Linux,Error Code,我正在Linux上通过Python脚本运行一个Java程序,但是程序崩溃了,没有输出任何错误消息。执行Java程序的os.system命令输出错误代码24。这是什么意思 在我的系统上,这可以在/usr/include/asm generic/errno base.h中找到: #define EMFILE 24 /* Too many open files */ 这意味着您的进程已超过C/system文件描述符的限制。通常限制在1024左右,可能存在一些文件描述符未关闭的错误。(这在

我正在Linux上通过Python脚本运行一个Java程序,但是程序崩溃了,没有输出任何错误消息。执行Java程序的os.system命令输出错误代码24。这是什么意思

在我的系统上,这可以在
/usr/include/asm generic/errno base.h
中找到:

#define EMFILE      24  /* Too many open files */
这意味着您的进程已超过C/system文件描述符的限制。通常限制在1024左右,可能存在一些文件描述符未关闭的错误。(这在Python或Java代码中似乎不太可能,因为它们是为您完成的…)

更新0 我刚刚意识到您可能在谈论Java程序的返回代码。这是特定于程序的,您需要检查程序的文档或代码。

来自:

在Unix上,返回值是出口 中编码的进程的状态 为wait()指定的格式。注意 POSIX没有指定 C系统()的返回值 函数,因此 Python函数依赖于系统

幸运的是,用于解析返回状态的C宏在
os
模块(开始)中可用

我在amd64/Linux上运行了这些:

>>> import os
>>> os.WIFEXITED(24) #Return True if the process exited using the exit(2) system call
False
>>> os.WIFSIGNALED(24) #Return True if the process exited due to a signal
True
>>> os.WTERMSIG(24) #Return the signal which caused the process to exit
24
据我所知,我认为信号24可能是SIGTSTP(有人通过按CTRL+Z停止了进程)。您运行的平台/体系结构是什么

(接下来,我建议您使用该模块,以便捕获stdout/stderror)

更新

有人发布了它,然后它消失了,但信号24很可能(超过了CPU时间限制)