Eu gostaria de executar um script PHP quando uma instância for desligada, mas é claro, antes que ela realmente termine de ser desligada. Meu script específico procura apenas enviar alguns arquivos de log da partição local para outro servidor.
Entendi a essência de como esse processo funciona, mas preciso de alguns esclarecimentos.
Como eu entendo isso. Por favor me corrija se eu estiver errado.
- Crie um script executável em /etc/init.d (vamos chamá-lo de /etc/init.d/push-logs)
- Crie um link simbólico para /etc/init.d/push-logs de /etc/rc0.d (desligamento) e /etc/rc6.d (reinicialização). O nome deve ser KXXpush-logs
Aqui estão minhas perguntas:
- Claro - estou entendendo corretamente?
- Para o item 2 acima - parece que quanto menor o XX, melhor - há um número muito baixo que eu possa usar? Faz diferença se ele compartilha um número com outro script?
- O script em /etc/init.d/push-logs PRECISA seguir o modelo init.d padrão (suportando comandos start/stop, etc.)? Isso realmente não se aplica ao meu caso de uso. Se possível, só quero que o script seja o seguinte:
#!/bin/sh # # Run PHP file prior to shutdown # /usr/bin/php /path/to/php_file.php
Responder1
- Sim, mas o nome do link simbólico deve começar com
S
- para Start (K
para Kill) - Os dois dígitos especificam a ordem de execução do seu script, sendo o número mais baixo executado primeiro.
- Sim, porque o Linux executará o equivalente
service push-logs start
aoS
link simbólico.
Responder2
No CentOS você também precisa do arquivo correspondente em/var/lock/subsys/
/var/lock/subsys/push-logs
https://unix.stackexchange.com/questions/114274/an-init-script-does-not-get-called-on-shutdown
Com isso em mente, pode ser mais fácil criar um serviço falso que toque naquele arquivo no início e não faça nada no status...