Docker 重新装载集装箱化fluentd配置

Docker 重新装载集装箱化fluentd配置,docker,fluentd,Docker,Fluentd,假设我的容器名为fluentd,我希望此命令重新加载配置: sudo docker kill -s HUP fluentd 相反,它杀死了容器 似乎有一些进程从入口点派生: PID USER TIME COMMAND 1 root 0:00 {entrypoint.sh} /usr/bin/dumb-init /bin/sh /bin/entrypoint.sh /bin/sh -c fluentd -c /fluentd/etc/${FLUENTD_CONF} -

假设我的容器名为fluentd,我希望此命令重新加载配置:

sudo docker kill -s HUP fluentd
相反,它杀死了容器

似乎有一些进程从入口点派生:

PID   USER     TIME   COMMAND
1 root       0:00 {entrypoint.sh} /usr/bin/dumb-init /bin/sh /bin/entrypoint.sh /bin/sh -c fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/pl
5 root       0:00 /bin/sh /bin/entrypoint.sh /bin/sh -c fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
13 fluent     0:00 /bin/sh -c fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
14 fluent     0:00 {fluentd} /usr/bin/ruby /usr/bin/fluentd -c /fluentd/etc/fluentd.conf -p /fluentd/plugins
16 fluent     0:00 {fluentd} /usr/bin/ruby /usr/bin/fluentd -c /fluentd/etc/fluentd.conf -p /fluentd/plugins
尝试从容器内呼气pid 13,它似乎工作

Docker正在向入口点发送信号。如果我检查State.Pid,就会看到4450。以下是主持人ps:

root      4450  4432  0 18:30 ?        00:00:00 /usr/bin/dumb-init /bin/sh /bin/entrypoint.sh /bin/sh -c fluentd -c 
/fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
root      4467  4450  0 18:30 ?        00:00:00 /bin/sh /bin/entrypoint.sh /bin/sh -c fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
ubuntu    4475  4467  0 18:30 ?        00:00:00 /bin/sh -c fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
ubuntu    4476  4475  0 18:30 ?        00:00:00 /usr/bin/ruby /usr/bin/fluentd -c /fluentd/etc/fluentd.conf -p /fluentd/plugins
ubuntu    4478  4476  0 18:30 ?        00:00:00 /usr/bin/ruby /usr/bin/fluentd -c /fluentd/etc/fluentd.conf -p /fluentd/plugins

你知道如何在没有自定义脚本的情况下重新加载conf以找到正确的HUP进程吗?

我相信这个命令应该可以工作

sudo docker exec fluentd pkill -1 -x fluentd

我在fluentd容器中的sleep命令上测试了它,它可以工作。

发送'-1-xsh'可以工作。fluentd进程显然是最低的子进程,因此您必须得到它们的父进程。再看一眼,sh选择了两个进程,entrypoint和child,并且将hup发送给这两个进程都不起作用。你可以做一些花哨的工作,试着选择有grep和awk之类的孩子,但不值得。我将重新启动容器。
docker kill--signal=HUP fluentd_container_id
您在容器中找到向fluentd发送SIGHUP的方法了吗?我都试过了,但其中一个真的能重新装弹。