rc6.d의 사용자 정의 종료 스크립트가 작동하지 않는 것 같습니다.

rc6.d의 사용자 정의 종료 스크립트가 작동하지 않는 것 같습니다.

저는 다소 민감한 소프트웨어 응용 프로그램을 사용하고 있으므로 재부팅하거나 종료할 때 소프트웨어가 자동으로 닫히는 것을 원하지 않습니다. 스크립트를 생성하여 /etc/init.d/에 배치하고 /etc/rc6.d에 심볼릭 링크를 추가하고 이름을 "K99_restofname"으로 지정했습니다. 이 스크립트는 재부팅 시나리오 이외의 테스트에서 잘 작동합니다. 이 프로세스를 완료하는 데 거의 1분 정도 걸립니다. 시스템이 매우 빠르게 종료되고 스크립트가 작동하는 동안 지연이 나타나기 때문에 재부팅할 때 실행되거나 작동하지 않는 것 같습니다. (나도 화면을 보고 있다.) 로그에도 아무것도 보이지 않는다. 이것은 내 스크립트입니다.

 #!/bin/bash

## # Any subsequent(*) commands which fail will cause the shell     script to exit immediately

abort()
{
echo >&2 '
***************
*** ABORTED ***
***************
'
echo "An error occurred. Exiting..." >&2
exit 1
}

trap 'abort' 0

set -e

## Stopping the application services before the system shuts down. This   must be done by the application user user. 

VAR=`/bin/su -c "/opt/app/bin/command stopall" - user`

echo $VAR

# DONE

trap : 0

echo >&2 '
************
*** DONE *** 
************
'

무슨 일이 일어나고 있는지 또는 사용자 정의 종료 스크립트를 추적할 수 있는 방법을 알려주실 수 있나요? 내 목표를 달성하는 데 이보다 더 좋은 방법이 있습니까? 내 시스템은 RHEL 6 서버입니다.

답변1

K99를 S00_ 또는 mv S01reboot Sxxreboot로 변경하고 스크립트 S01을 만듭니다.

내가 한 일은 스크립트를 만드는 것이었습니다.

#!/bin/bash
echo "Ran S10" >> /var/tmp/done

"S10Test"라고 부르세요.

그리고 또 다른 것 :

#!/bin/bash
echo "Ran K10" >> /var/tmp/done

그런 다음 가상 머신을 다시 시작했습니다.

/var/tmp/done에는 "S10"이 포함되어 있습니다.

이것을 직접 테스트해 볼 수도 있습니다.

내가 의심하는 것은 S 스크립트가 실행된다는 것입니다.당신이 들어갈 때런레벨. K 스크립트 실행당신이 떠날 때. S01Reboot(원래 이름)이 재부팅되므로 "away"가 없습니다.

("용의자"에 주목하세요).

관련 정보