Nova sintaxe para o Suse Linux Enterprise 11 SP2 (e o openSUSE?)
A melhor maneira seria criar um script de shell que chamaria seu script PHP. Este script de shell deve ter em seu cabeçalho o seguinte comentário:
#!/bin/sh
### BEGIN INIT INFO
# Provides: nothing
# Required-Start: $all
# Default-Start: 3 5
# Default-Stop: 4
# Short-Description: single_line_description
# Description: multiline_description
### END INIT INFO
Você pode encontrar um modelo típico (com muitos comentários explicativos) em /etc/init.d/skeleton
. Este modelo inclui o código necessário para ligar o seu script PHP. Você verá um caso inicial em que você teria que chamar seu script PHP.
Eu descartei um número de parâmetro opcional no cabeçalho, pois não parece que você precisaria deles.
Importante
É importante usar o esqueleto pelo menos a instrução case (veja ações de scripts init ), e para implementar o caso inicial, pelo menos. No caso inicial, é para onde chamar seu script.
Você pode encontrar aqui um pequeno exemplo de script que será chamado no final de uma inicialização: veja minha essência . Eu coloquei um nível de execução inválido para o Default-Stop, mas de alguma forma o script ainda é chamado durante o desligamento. De qualquer forma, o código no caso "stop" é executado, não aquele no caso "start" durante o encerramento.
Depois de ter escrito o seu script, copie-o para /etc/init.d
, vamos supor que o seu script de inicialização é chamado de notificação de inicialização, então você faria (como root):
chown root:root boot-notification
chmod 0750 boot-notification
mv boot-notification /etc/init.d/
Então você precisa "registrar" o script no sistema init. Você usará o comando insserv
(novamente como root) ou poderá usar o YaST:
insserv boot-notification
Depois, você pode verificar se o script é um dos últimos a serem executados, examinando cada nível de inicialização. Se você escolheu apenas o nível de execução 3, poderá fazer isso:
ls -l /etc/init.d/rc3.d/S*
Isso retornará uma lista de links para scripts de inicialização. O link para o seu script deve estar no final (ou próximo dele) da lista.
Nota: Se você quiser brincar com a maneira mais dinâmica de escrever scripts de inicialização, aconselho ler essas duas páginas: