シャットダウン/再起動前にスクリプトを実行する

シャットダウン/再起動前にスクリプトを実行する

インスタンスがシャットダウンするように指示されたときに、もちろん実際にシャットダウンが完了する前に、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 テンプレート (start/stop などのコマンドをサポート) に従う必要がありますか? これは、私のユースケースには当てはまりません。可能であれば、スクリプトを次のようにしたいだけです。
#!/bin/sh
#
# Run PHP file prior to shutdown
#

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

答え1

  1. はい、ただし、シンボリックリンク名はSStart の場合は - ( K Kill の場合は -)で始まる必要があります。
  2. 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

それを念頭に置くと、起動時にそのファイルにアクセスし、ステータスでは何もしない偽のサービスを作成する方が簡単かもしれません...

関連情報