Ejecute el script antes de apagar/reiniciar

Ejecute el script antes de apagar/reiniciar

Me gustaría ejecutar un script PHP cuando se le indica a una instancia que se cierre, pero, por supuesto, antes de que termine de cerrarse. Mi secuencia de comandos particular solo busca enviar algunos archivos de registro desde la partición local a otro servidor.

Tengo la esencia de cómo funciona este proceso, pero necesito algunas aclaraciones.

Como lo entiendo. Por favor corrígeme si estoy equivocado.

  1. Cree un script ejecutable en /etc/init.d (llamémoslo /etc/init.d/push-logs)
  2. Cree un enlace simbólico a /etc/init.d/push-logs desde /etc/rc0.d (apagado) y /etc/rc6.d (reinicio). El nombre debe ser KXXpush-logs

Aquí están mis preguntas:

  1. Por supuesto, ¿lo entiendo correctamente?
  2. Para el punto 2 anterior, parece que cuanto menor sea XX, mejor, ¿hay un número demasiado bajo que pueda usar? ¿Importa si comparte un número con otro script?
  3. ¿El script en /etc/init.d/push-logs TIENE que seguir la plantilla estándar init.d (que admite comandos de inicio/parada, etc.)? Esto realmente no se aplica a mi caso de uso. Si es posible, solo quiero que el script sea el siguiente:
#!/bin/sh
#
# Run PHP file prior to shutdown
#

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

Respuesta1

  1. Sí, pero el nombre del enlace simbólico debe comenzar con S- para Iniciar ( K para Matar)
  2. Los dos dígitos especifican el orden de ejecución de su script; el número más bajo se ejecuta primero.
  3. Sí, porque Linux ejecutará el equivalente a service push-logs startpara el Senlace simbólico.

Respuesta2

En CentOS también necesita el archivo correspondiente en/var/lock/subsys/

/var/lock/subsys/push-logs

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

Con eso en mente, podría ser más fácil crear un servicio falso que toque ese archivo al inicio y no haga nada con el estado...

información relacionada