저는 다소 민감한 소프트웨어 응용 프로그램을 사용하고 있으므로 재부팅하거나 종료할 때 소프트웨어가 자동으로 닫히는 것을 원하지 않습니다. 스크립트를 생성하여 /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"가 없습니다.
("용의자"에 주목하세요).