2017-08-03 1 views
0

mein Container Gesetzt fluentd genannt wird, würde ich diesen Befehl erwarten die Config neu zu laden:Reload containerisierter fluentd Konfiguration

sudo docker kill -s HUP fluentd 

Stattdessen tötet sie den Behälter.

scheint es einige Laich von wenigen Prozesse vom Einstiegspunkt ist:

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 

HUPping Versuchte aus dem Inneren des Behälters pid 13 und es scheint zu funktionieren.

Docker sendet das Signal an den Eingangspunkt. Wenn ich die State.Pid inspizieren, sehe ich 4450 Hier ist der Host-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 

Irgendwelche Ideen, wie Sie laden Sie die conf ohne benutzerdefinierten Skript das richtige Verfahren HUP zu finden? Getestet habe ich es auf den Schlaf-Befehl innerhalb fluentd Container

Antwort

0

sollten Dieser Befehl funktioniert I

sudo docker exec fluentd pkill -1 -x fluentd 

glauben und es funktioniert.

+0

Senden von '-1 -x sh' funktioniert. Die fluentd Prozesse sind anscheinend die niedrigsten Kinder, also müssen Sie ihre Eltern bekommen. –

+0

So ist Ihr Problem gelöst? –

+0

Auf den zweiten Blick wählt das sh zwei Prozesse, den Einstiegspunkt und das Kind, und das Senden der hup zu beiden funktioniert nicht. Kann eine schicke Arbeit machen, die versucht, das Kind mit grep und awk und so auszuwählen, aber es lohnt sich nicht. Ich starte den Container einfach neu. –