我们设置了通过 CloudWatch Events / EventBridge 安排的 AWS ECS 任务。我们希望根据容器退出代码获得失败运行的指标和通知。
我们计划使用通过 CloudWatch Metrics 监控使用情况中的 FailedInitations 。
但是,指标中似乎没有看到非零任务退出代码。ECS 任务的退出代码在 AWS 控制台中被验证为非零,但指标仅包括“调用”和“触发规则”。我们之前在设置任务时遇到了 FailedInitations,并且缺少启动任务所需的策略,但非零退出代码似乎不会影响该指标。
难道只是 EventBridge 不提供非零容器退出代码的指标,还是我们可能会在设置中遗漏某些内容?
我们可以通过记录某些错误消息的任务来解决这个问题,但退出代码会更通用。
exit-code amazon-web-services amazon-ecs amazon-cloudwatch aws-event-bridge
我需要从命令行程序中检索退出状态代码.不用担心,我用过$?但对于ftp,即使它没有连接,也会打开ftp shell,所以我无法理解连接没有发生.
试试这段代码吧:
#!/bin/sh
ftp 1234567
OUT=$?
if [ $OUT -eq 0 ];then
echo "ftp OK"
else
echo "ftp Error: "$OUT
fi
exit 0
Run Code Online (Sandbox Code Playgroud)
有帮助吗?谢谢菲利波
刚刚将Xcode更新为4.3,现在我无法构建我的应用程序.我收到这个错误:
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 254
Run Code Online (Sandbox Code Playgroud)
还有其他人有这个问题吗?它可能只是一个编译设置,但我不知道在哪里看.
当然,错误包括整个堆栈转储,但为了简洁起见,我没有包括它.我希望有人知道"退出代码254"是什么.尝试搜索它但找不到任何东西.
这是整个输出:
CompileC /Users/aaron/Library/Developer/Xcode/DerivedData/iDB-cvvkmobzsecywdherzjesrjswdng/Build/Intermediates/iDB.build/Debug-iphonesimulator/Flexile.build/Objects-normal/i386/SCheckBox.o iDB/SCheckBox.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
cd "/Users/aaron/Dropbox/XCode Projects/iDB"
setenv LANG en_US.US-ASCII
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch i386 -fmessage-length=0 -std=gnu99 -fobjc-arc -Wno-trigraphs -fpascal-strings -O0 -Werror -Wno-missing-field-initializers -Wmissing-prototypes -Wreturn-type -Wno-implicit-atomic-properties -Wformat -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wunused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-sign-compare -Wno-shorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -DDEBUG=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -fexceptions -fasm-blocks -Wprotocol -Wdeprecated-declarations -mmacosx-version-min=10.6 -g -Wno-conversion -Wno-sign-conversion -fobjc-abi-version=2 -fobjc-legacy-dispatch "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" …Run Code Online (Sandbox Code Playgroud) 我使用本机编译的jsvc来启动java守护进程.我在openSUSE 32位vm上运行它.代码实现了Apache的守护进程接口,我正在使用以下命令执行deamon.
./jsvc -home jre -errfile logs/jsvc.err -pidfile daemon.pid -cp <my_classpath> com.loader.loaderservice.LoaderDaemon
Run Code Online (Sandbox Code Playgroud)
它启动并运行没有问题.我可以作为普通用户和root用户启动守护进程.但是,当我去终止守护进程时,jsvc会终止进程而不是发出stop命令.
./jsvc -stop -home jre -outfile logs/jsvc.err -errfile logs/jsvc.err -pidfile daemon.pid -cp <my_classpath> com.loader.loaderservice.LoaderDaemon
Run Code Online (Sandbox Code Playgroud)
守护进程终止,但不执行任何关闭步骤(例如,它应该记录,标记数据库中的记录等).我在logs/jsvc.err文件中得到以下内容,并且它不会写任何其他日志:
Service exit with return value 143
Run Code Online (Sandbox Code Playgroud)
在谷歌搜索错误后,我看到一些人都看到了同样的事情,但我无处可寻找一个好的解决方案(http://mail-archives.apache.org/mod_mbox/commons-dev/200401. mbox/%3CPine.GSO.3.96.1040105133739.23375A-100000@merlot.tel.uva.es%3E,http://www.tek-tips.com/viewthread.cfm?qid=1014679,HTTP://三比特. net/mail-archive/tomcat-users/msg03832.html).
更新: 使用Apache的窗口的服务启动器(procrun)我能够毫无问题地启动和停止服务.该问题似乎只与jsvc相关,并且仅在停止守护进程时才会出现.
更新2: 在仔细阅读了http://commons.apache.org/daemon/jsvc.html#Starting_jsvc后,我注意到我正在使用的停止标签通过我指定的pid文件发出了一个kill命令.似乎jsvc实际上并没有通过设计优雅地停止守护进程.这与我所看到的行为一致,因为非常详细的stop方法不会写出任何消息.
-stop stop the service using the file given in the -pidfile option
Run Code Online (Sandbox Code Playgroud)
新问题:
在具有大量关闭操作的高度并发程序中,想知道如何在不过早调用System.exit()的情况下设置退出代码?可以设置"当其他一切完成时执行此代码"方法?但我真的只想提前设置退出代码.
在重定向失败时(由于文件不存在或文件访问不足),ErrorLevel似乎没有设置该值(在以下示例中,文件test.tmp是写保护的,文件test.nil不存在):
>>> (call ) & rem // (reset `ErrorLevel`)
>>> > "test.tmp" echo Text
Access is denied.
>>> echo ErrorLevel=%ErrorLevel%
ErrorLevel=0
>>> (call ) & rem // (reset `ErrorLevel`)
>>> < "test.nil" set /P DUMMY=""
The system cannot find the file specified.
>>> echo ErrorLevel=%ErrorLevel%
ErrorLevel=0
Run Code Online (Sandbox Code Playgroud)
但是,只要失败的重定向后面跟着||查询退出代码的条件连接运算符,ErrorLevel就会1意外地设置为:
>>> (call ) & rem // (reset `ErrorLevel`)
>>> (> "test.tmp" echo Text) || echo Fail
Access is denied.
Fail
>>> …Run Code Online (Sandbox Code Playgroud) 我需要在脚本中依赖于几个单独的执行,并且不希望将它们全部捆绑在一个丑陋的'if'语句中.我想把退出代码'$?' 每次执行并添加它; 最后,如果这个值超过一个阈值 - 我想执行一个命令.
伪代码:
ALLOWEDERROR=5
run_something
RESULT=$?
..other things..
run_something_else
RESULT=$RESULT + $?
if [ $RESULT -gt ALLOWEDERROR ]
then echo "Too many errors"
fi
Run Code Online (Sandbox Code Playgroud)
问题:即使互联网声称不然,bash拒绝对待RESULT和$?作为整数.什么是正确的语法?
谢谢.
如何使用C#中的退出代码退出程序?在java中它会System.exit(int code);
当我们使用任务管理器结束进程命令在Windows中终止进程时,进程是否仍会返回退出代码?如果是这样,它返回什么退出代码?谢谢
我正在 Kubernetes 中使用容器化的 Spring boot 应用程序。但应用程序会自动退出并重新启动,并显示退出代码 143 和错误消息“Error”。
我不确定如何确定此错误的原因。
我的第一个想法是 Kubernetes 由于资源使用率过高而停止了容器,如此处所述,但我看不到相应的 kubelet 日志。
有什么方法可以确定其原因/起源SIGTERM吗?也许来自 spring-boot 本身,或者来自 JVM?