docker 컨테이너로 logrotate를 구성하려고합니다. docker 컨테이너에서 백그라운드 프로세스로 httpd를 실행 중이며 logrotate 후 새 로그 파일을 사용하기 위해 다시로드해야합니다. 가능한 가동 중지 시간 때문에 컨테이너를 다시 시작하지 않으려합니다. docker kill --signal=HUP <container>
으로 SIGHUP을 보내는 것은 작동하지 않습니다. 내 진입 점은 신호를 처리하지 않는 bash 스크립트입니다. 나는 logrotate에의 설정이처럼하려고 노력 :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
하지만 난 고정 표시기에 아주 새로운 해요 및 리눅스와 고정 표시기 프로세스 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
있어 그 존재하지 않음.
편집 : 가능한 경우 SIGHUP을 트랩하도록 bash 스크립트를 변경하지 않고 대신 logrotate config의 문제를 해결하십시오.