애플리케이션과 데이터베이스가 정상적으로 중지되기 전에 RHEL 6.4 서버가 너무 빨리 전송 TERM
하고 신호를 보내는 상황이 있습니다 . KILL
Upstart가 sysv-rc 스크립트에 조기에 제어권을 넘겨주는 것 같습니다.
이 문제를 해결하기 위해 Upstart 구성에 명령을 sleep
추가해 보았습니다 . logger
스탠자 pre-script
가 syslog에 기록 중이지만 시스템이 10초 내에 재부팅되기 때문에 절전 모드가 완료되지 않습니다. 나는 또한 kill timeout
무시되는 것을 추가했습니다.
# cleanup at system shutdown
# Does stop all on apps, stops monit instances, then does a clean.
start on runlevel [016]
console output
kill timeout 120
task
pre-start script
logger -s -t "arcsight-services-stopall" "Running pre-start..."
/etc/init.d/arcsight_services stop
sleep 60
end script
script
logger -s -t "arcsight-services-stopall" "Running script..."
/etc/init.d/arcsight_services shutdown monit
/etc/init.d/arcsight_services clean all
end script
Upstart가 부팅/중지 프로세스를 병렬화한다고 가정했지만 디버깅 시도가 마비되었을 뿐입니다.
RHEL 6에서 발행 후 실행되는 스크립트의 최종 순서는 무엇입니까? shutdown -r now
?
shutdown -r now
?????
/etc/init/rc.conf
(갑자기 나타나다)/etc/rc.d/rc
(sysv-rc)?????
/etc/rc3.d/K*
(sysv-rc)/etc/rc6.d/S*
(sysv-rc)?????
다른 /etc/init/*.conf 스크립트는 어디에서 호출됩니까?
업데이트: 해부할 /etc/rc.d/rc
때 touch /var/run/confirm
프로세스가 대화형 모드로 들어간 다음 수면 및 로거 명령이 실행되는 것으로 나타났습니다. 그 시점에서 Upstart가 제어권을 sysv-rc에 넘겼다고 생각했기 때문에 이것은 나를 당혹스럽게 했습니다.
답변1
이 답변은 RHEL 6 종료 중에 실행되는 스크립트의 순서를 다루지는 않지만 프로세스가 정상적으로 중지되기 전에 시스템 종료 프로세스 문제를 해결합니다.
/etc/init/arcsight-services-stopall.conf:
# cleanup at system shutdown
# Does stop all on apps, stops monit instances, then does a clean.
start on starting rc RUNLEVEL=[016]
task
kill timeout 330
pre-start script
logger -s -t "ArcSight" "ArcSight ESM shutdown initiated..."
/etc/init.d/arcsight_services shutdown all
/etc/init.d/arcsight_services shutdown monit
/etc/init.d/arcsight_services clean all
sleep 300
end script
script
logger -s -t "ArcSight" "ArcSight ESM shutdown complete."
end script
핵심은 수정 중이었습니다 start on starting rc RUNLEVEL=[016]
. 막 시작하는 동안 이 스크립트를 시작하면 /etc/init/rc.conf
sysv-rc 스크립트가 실행되기 전 5분 동안 차단됩니다. 5분 동안 모든 ArcSight 데이터베이스와 애플리케이션이 정상적으로 중지되기를 바랍니다. 테스트 결과 모든 것이 3분 이내에 중지되었으므로 5분 정도 지연해도 안전합니다.
수백만 달러 규모의 제품에 고객 해킹이 필요한 것을 보는 것은 항상 좋은 일입니다.