相关疑难解决方法(0)

279
推荐指数
5
解决办法
44万
查看次数

为什么在 docker 后台使用带有“守护进程关闭”的 nginx?

这一切都从这篇关于在 docker 中设置 nginx 和 certbot 的文章开始。在手册的最后,作者使用以下命令为 nginx 进行了自动证书更新:

command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
Run Code Online (Sandbox Code Playgroud)

我不是唯一一个不理解这部分的人,所以有一个问题:Why do sleep & wait in bash?

得到的答案是原始命令并不完美,这是更正后的版本:

/bin/sh -c 'nginx -g \"daemon off;\" & trap exit TERM; while :; do sleep 6h  & wait $${!}; nginx -s reload; done'
Run Code Online (Sandbox Code Playgroud)

但在这个命令中我看到nginx -g \"daemon off;\" & 为什么我们首先将 nginx 放在前台然后将其放入后台?有什么影响?为什么不首先在后台启动 nginx?

另一个问题:据我了解,while与原始命令不同,该周期保留在 docker 的前台。但是如果nginx if后台,是否意味着它死了,docker不在乎?前台while仍在工作,没问题。 …

bash nginx docker

6
推荐指数
1
解决办法
8518
查看次数

标签 统计

bash ×2

docker ×1

nginx ×1

shell ×1

sleep ×1

wait ×1