종료/다시 시작하기 전에 스크립트 실행

종료/다시 시작하기 전에 스크립트 실행

인스턴스가 종료하라는 지시를 받았을 때 PHP 스크립트를 실행하고 싶습니다. 물론 인스턴스가 실제로 종료되기 전에 말이죠. 내 특정 스크립트는 일부 로그 파일을 로컬 파티션에서 다른 서버로 푸시하려고 합니다.

이 프로세스가 어떻게 작동하는지에 대한 요점을 알고 있지만 몇 가지 설명이 필요합니다.

내가 어떻게 이해하는지. 내가 틀렸다면 정정해주세요.

  1. /etc/init.d에 실행 가능한 스크립트를 만듭니다(/etc/init.d/push-logs라고 부르겠습니다).
  2. /etc/rc0.d(종료) 및 /etc/rc6.d(재부팅)에서 /etc/init.d/push-logs에 대한 심볼릭 링크를 만듭니다. 이름은 KXXpush-logs여야 합니다.

내 질문은 다음과 같습니다.

  1. 물론이죠. 제가 올바르게 이해하고 있나요?
  2. 위 #2의 경우 - XX가 낮을수록 더 좋은 것 같습니다. 사용할 수 있는 숫자가 너무 낮은가요? 다른 스크립트와 번호를 공유해도 문제가 되나요?
  3. /etc/init.d/push-logs의 스크립트는 표준 init.d 템플릿(시작/중지 등 명령 지원)을 따라야 합니까? 이것은 내 사용 사례에는 실제로 적용되지 않습니다. 가능하다면 스크립트를 다음과 같이 만들고 싶습니다.
#!/bin/sh
#
# Run PHP file prior to shutdown
#

/usr/bin/php /path/to/php_file.php

답변1

  1. 예, 심볼릭 링크 이름은 S시작( K Kill)의 경우 -로 시작해야 합니다.
  2. 두 자리 숫자는 스크립트 실행 순서를 지정하며 가장 낮은 숫자가 먼저 실행됩니다.
  3. service push-logs start예, Linux는 심볼릭 링크 와 동등한 기능을 실행하기 때문입니다 S.

답변2

CentOS에서는 일치하는 파일도 필요합니다./var/lock/subsys/

/var/lock/subsys/push-logs

https://unix.stackexchange.com/questions/114274/an-init-script-does-not-get-called-on-shutdown

이를 염두에 두고 시작 시 해당 파일에 접근하고 상태에서는 아무 작업도 수행하지 않는 가짜 서비스를 만드는 것이 더 쉬울 수 있습니다.

관련 정보