Execute o script antes de desligar/reiniciar

Execute o script antes de desligar/reiniciar

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.

  1. Crie um script executável em /etc/init.d (vamos chamá-lo de /etc/init.d/push-logs)
  2. 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:

  1. Claro - estou entendendo corretamente?
  2. 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?
  3. 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

  1. Sim, mas o nome do link simbólico deve começar com S- para Start ( K para Kill)
  2. Os dois dígitos especificam a ordem de execução do seu script, sendo o número mais baixo executado primeiro.
  3. Sim, porque o Linux executará o equivalente service push-logs startao Slink 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...

informação relacionada