You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeDeploy报错:脚本未关闭STDERR,如何正确输出到nohup.out?

问题描述

执行CodeDeploy部署脚本时触发如下错误:

InstanceAgent::Plugins::CodeDeployPlugin::HookExecutor: Script at specified location: scripts/powwow-deploy.sh failed to close STDERR
Script at specified location: scripts/powwow-deploy.sh failed to close STDERR

涉及的部署脚本powwow-deploy.sh内容如下:

nohup java -jar -Dspring.profiles.active=uat target/pow-wow-0.0.2-SNAPSHOT.jar > logs/nohup.out &

推测问题出在输出重定向> logs/nohup.out操作上,需要调整脚本实现输出写入目标文件且不触发该错误。

解决方案

错误根源是脚本未正确处理STDERR(标准错误输出),CodeDeploy Agent要求执行的脚本必须正确关闭所有打开的文件描述符,包括STDERR。

修改后的脚本写法:

nohup java -jar -Dspring.profiles.active=uat target/pow-wow-0.0.2-SNAPSHOT.jar > logs/nohup.out 2>&1 &

如果需要更严谨地满足CodeDeploy的要求,可以同时关闭标准输入:

nohup java -jar -Dspring.profiles.active=uat target/pow-wow-0.0.2-SNAPSHOT.jar > logs/nohup.out 2>&1 < /dev/null &

关键说明:

  • 2>&1:将STDERR(文件描述符2)重定向到STDOUT(文件描述符1)的输出目标,让错误信息和正常输出一起写入logs/nohup.out,同时关闭了独立的STDERR流。
  • < /dev/null:将标准输入重定向到空设备,避免进程等待输入的同时,显式关闭STDIN,完全符合CodeDeploy对脚本文件描述符的处理要求。

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:03:10