Esta é uma tarefa comum do Linux - você faria isso usando scripts em nível de execução. Esta página do Linux .com é uma ótima introdução.
Basicamente, existem 7 níveis de execução no Linux:
- 0 - Parar
- 1 - modo de usuário único
- 2 - Modo multiusuário básico (sem rede)
- 3 - Modo multiusuário completo (baseado em texto)
- 4 - Não usado
- 5 - Modo multiusuário completo (baseado em GUI)
- 6 - Reinicializar
O comando halt
define essencialmente o nível de execução do computador como 0. Quando isso acontece, todos os vários scripts de nível de execução 0 ocorrem. Você pode ver todos esses scripts fazendo um ls -l /etc/rc0.d/
.
Da mesma forma, o comando reboot
define o nível de execução do computador como 6 e executará todos os scripts em /etc/rc6.d/
.
A solução para o seu problema é criar um script no estilo init. Copie um dos existentes ou crie o seu a partir do zero (veja este tópico do StackExchange para mais detalhes; alternativamente, há muita documentação na Internet para criar scripts de inicialização no Linux).
Se você quiser que o script faça o mesmo quando o computador estiver sendo desligado e reinicializado, basta criar um link para seu script nos diretórios /etc/rc0.d
e /etc/rc6.d
.
Se você deseja que duas coisas diferentes aconteçam, dependendo de o computador estar sendo desligado ou reiniciado, crie dois scripts diferentes e faça um link flexível nos diretórios apropriados.