Skript vor dem Herunterfahren/Neustart ausführen

Skript vor dem Herunterfahren/Neustart ausführen

Ich möchte ein PHP-Skript ausführen, wenn eine Instanz heruntergefahren werden soll, aber natürlich bevor das Herunterfahren tatsächlich abgeschlossen ist. Mein spezielles Skript versucht lediglich, einige Protokolldateien von der lokalen Partition auf einen anderen Server zu übertragen.

Ich habe im Wesentlichen verstanden, wie dieser Prozess funktioniert, aber ich brauche einige Erläuterungen.

So habe ich es verstanden. Bitte korrigieren Sie mich, wenn ich falsch liege.

  1. Erstellen Sie ein ausführbares Skript in /etc/init.d (nennen wir es /etc/init.d/push-logs).
  2. Erstellen Sie einen Symlink zu /etc/init.d/push-logs von /etc/rc0.d (Herunterfahren) und /etc/rc6.d (Neustart). Der Name sollte KXXpush-logs sein.

Hier sind meine Fragen:

  1. Natürlich – verstehe ich das richtig?
  2. Für Nr. 2 oben – es klingt so, als ob je niedriger das XX, desto besser ist – gibt es eine zu niedrige Zahl, die ich verwenden kann? Spielt es eine Rolle, wenn es eine Zahl mit einem anderen Skript teilt?
  3. MUSS das Skript in /etc/init.d/push-logs der Standardvorlage von init.d folgen (unterstützt Start-/Stopp-Befehle usw.)? Das trifft auf meinen Anwendungsfall nicht wirklich zu. Wenn möglich, soll das Skript einfach wie folgt aussehen:
#!/bin/sh
#
# Run PHP file prior to shutdown
#

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

Antwort1

  1. SJa, aber der Name des Symlinks sollte mit einem - für Start ( K für Kill) beginnen.
  2. Die zwei Ziffern geben die Ausführungsreihenfolge Ihres Skripts an, wobei die niedrigste Zahl zuerst ausgeführt wird.
  3. service push-logs startJa, da Linux das Äquivalent für den symbolischen Link ausführt S.

Antwort2

Unter CentOS benötigen Sie zusätzlich die passende Datei in/var/lock/subsys/

/var/lock/subsys/push-logs

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

In diesem Sinne wäre es möglicherweise einfacher, einen gefälschten Dienst zu erstellen, der die Datei beim Start berührt und beim Status nichts unternimmt ...

verwandte Informationen