logrotateをdockerコンテナで設定しようとしています。私はdockerコンテナのバックグラウンドプロセスとしてhttpdを実行しています.logrotateの後、新しいログファイルを使用するためにリロードする必要があります。停止時間のためにコンテナを再起動したくありません。 docker kill --signal=HUP <container>
でSIGHUPを送信しても、私のエントリポイントはシグナルを処理しないbashスクリプトです。logrotate postrotateとdocker execの異常な動作
...
sharedscripts
postrotate
service httpd reload > /dev/null 2>/dev/null || true
docker exec some-container kill -HUP $(ps -e | awk '{print $1}')>>/tmp/exec-out.log 2>>/tmp/exec-out.log || true
endscript
が、私はかなりドッカーする新しいおよびLinuxだとドッキングウィンドウは、そのプロセスIDを取得し、なぜ私は本当に理解していない
kill: sending signal to 30 failed: No such process
kill: sending signal to 31 failed: No such process
kill: sending signal to 32 failed: No such process
kill: sending signal to 33 failed: No such process
kill: sending signal to 34 failed: No such process
kill: sending signal to 35 failed: No such process
kill: sending signal to 36 failed: No such process
kill: sending signal to 37 failed: No such process
kill: sending signal to 38 failed: No such process
を得た:私はlogrotateの設定でこのようにそれを実行しようとしました存在しない。
EDIT:bashスクリプトを可能な限りSIGHUPをトラップするように変更するのではなく、代わりにlogrotate configの問題を解決します。