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.
- Cree un script ejecutable en /etc/init.d (llamémoslo /etc/init.d/push-logs)
- 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:
- Por supuesto, ¿lo entiendo correctamente?
- 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?
- ¿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
- Sí, pero el nombre del enlace simbólico debe comenzar con
S
- para Iniciar (K
para Matar) - Los dos dígitos especifican el orden de ejecución de su script; el número más bajo se ejecuta primero.
- Sí, porque Linux ejecutará el equivalente a
service push-logs start
para elS
enlace 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...