我在docker容器中有一个入口点脚本,如下所示:
#!/bin/bash
echo starting up
function shut_down() {
echo shutting down
pid=$(ps -e | grep myapp | awk '{print $1}')
kill -SIGTERM $pid
exit
}
trap "shut_down" SIGKILL SIGTERM SIGHUP SIGINT EXIT
/opt/myapp
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何通过docker stop在容器上运行来捕获发送的信号.以交互方式运行时,a ctrl+c将按预期触发它,但docker stop命令只等待10秒超时,并在不进入shut_down函数的情况下退出
如何捕获docker stopbash 发送的信号进行一些清理?
我正在尝试实现服务发现的领事,我遇到两件事:连接到自定义DNS服务器,并格式化我的net.LookupSRV()请求.
这是我试图在我的应用程序中查找的内容:
$ dig @127.0.0.1 -p 8600 serviceb.service.consul SRV
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @127.0.0.1 -p 8600 serviceb.service.consul SRV
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4511
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;serviceb.service.consul. IN SRV
;; ANSWER SECTION:
serviceb.service.consul. 0 IN SRV 1 1 80 az1-serviceb1.node.dc1.consul.
serviceb.service.consul. …Run Code Online (Sandbox Code Playgroud)