RHEL6 시작: 재부팅 중 이벤트 흐름

RHEL6 시작: 재부팅 중 이벤트 흐름

애플리케이션과 데이터베이스가 정상적으로 중지되기 전에 RHEL 6.4 서버가 너무 빨리 전송 TERM하고 신호를 보내는 상황이 있습니다 . KILLUpstart가 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?

  1. shutdown -r now
  2. ?????
  3. /etc/init/rc.conf(갑자기 나타나다)
  4. /etc/rc.d/rc(sysv-rc)
  5. ?????
  6. /etc/rc3.d/K*(sysv-rc)
  7. /etc/rc6.d/S*(sysv-rc)
  8. ?????

다른 /etc/init/*.conf 스크립트는 어디에서 호출됩니까?

업데이트: 해부할 /etc/rc.d/rctouch /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.confsysv-rc 스크립트가 실행되기 전 5분 동안 차단됩니다. 5분 동안 모든 ArcSight 데이터베이스와 애플리케이션이 정상적으로 중지되기를 바랍니다. 테스트 결과 모든 것이 3분 이내에 중지되었으므로 5분 정도 지연해도 안전합니다.

수백만 달러 규모의 제품에 고객 해킹이 필요한 것을 보는 것은 항상 좋은 일입니다.

관련 정보