一款在Windows 2003上作为定时任务运行的Java应用程序崩溃了,没有任何日志或其他可以帮助找出问题原因的信息。仅有的可用信息是应用程序返回代码143(8F)。此错误代码从计划任务日志中检索到。
有人知道这个错误代码(143)代表什么吗?用户注销是否可能导致应用程序被终止?
谢谢,
143通常意味着应用程序由于收到SIGTERM命令而被终止。参见https://unix.stackexchange.com/questions/10231/when-does-the-system-send-a-sigterm-to-a-process
但是,请注意应用程序可能会将143用于其自定义结果。
CTRL_LOGOFF_EVENT
信号。来自https://msdn.microsoft.com/en-us/library/windows/desktop/aa376876(v=vs.85).aspx:
在某些情况下,它将以错误代码在注销操作期间,系统还会向每个进程发送CTRL_LOGOFF_EVENT控制信号。
143
(SIGTERM
)终止Java应用程序。请参见https://bugs.openjdk.java.net/browse/JDK-6871190。-Xrs
选项启动Java。来自https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.win.80.doc/diag/appendixes/cmdline/Xrs.html:
因此,您应该使用以下内容启动Java应用程序:设置-Xrs可以防止Java™运行时环境处理任何内部或外部生成的信号,例如SIGSEGV和SIGABRT。
>java -Xrs -jar myapplication.jar
PS:
SIGTERM
和143
之间的关系在https://unix.stackexchange.com/questions/10231/when-does-the-system-send-a-sigterm-to-a-process#comment13523_10231中有解释。