golang支持优雅关闭和core错误记录

#经过测试,不能使用 ENTRYPOINT ["/modapi/modapi", "1>> /dev/null","2>> ./logs/stderr.log"],原因是虽然这种方案可以
#保证modapi命令为1号程序,能够接收到os的signal信号。但是如果程序core了,会直接导致1号进程core。则docker直接退出并且错误没有写入到
#stderr.log文件中。因此通过start.sh传递terminated信号,同时可以保证core时候堆栈信息可以写入到stderr.log中
CMD ["/bin/sh", "/modapi/start.sh"]
#!/bin/sh
# Define function to forward signals
term_handler() {
  echo "Forwarding SIGTERM to child process"
  kill -TERM "$child_pid"
  wait "$child_pid"
}

# Trap signals
trap term_handler SIGTERM

# Start the child process
/modapi/modapi 1>> /dev/null 2>> /modapi/logs/stderr.log &
child_pid=$!

# Wait for the child process to exit
wait "$child_pid"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值