Estou executando o Ubuntu Server 14.04 LTS x64. Eu tenho dois convidados do KVM. Um é um servidor de arquivos e outro executa o servidor mysql.
Eu tenho um script que eu executo no servidor de arquivos. O script conecta-se via ssh ao convidado que executa o servidor mysql, copia um banco de dados mysql e faz o upload para outro servidor remoto. O script funciona conforme o esperado. Agora eu quero fazer este script para ser executado no desligamento.
Eu li sobre o upstart e tentei fazer um serviço para conseguir isso. Eu criei meu arquivo init (/etc/init/dotproject_backup.conf) com este conteúdo:
# dotproject_backup
# This service makes a dump and rsync of a dotproject mysql database prior to shutdown.
description "dotproject backup"
author "Rodrigo Martinho"
start on startup
stop on runlevel [016]
pre-stop script
exec /home/user/script.sh
end script
Neste exemplo, eu também coloco o runlevel 6 para que eu possa testá-lo na reinicialização. Eu posso mudar isso depois de todos os trabalhos. Na reinicialização, o sistema não está aguardando a execução do script. Na verdade, parece que o script não está sendo executado, como posso ver no arquivo de log (/ var / log / upstart / dotproject_backup).
Eu tentei algumas outras configurações onde o script foi iniciado, mas o desligamento foi concluído antes do despejo do upload:
# dotproject_backup
# This service makes a dump and rsync of a dotproject mysql database prior to shutdown.
description "dotproject backup"
author "Rodrigo Martinho"
start on runlevel [016] or stopping dbus or deconfiguring-networking
script
exec /home/user/script.sh
end script
Nesta configuração, posso ver no arquivo de log que o script foi iniciado, mas foi cancelado quando o arquivo estava sendo carregado.
Eu li em outro post aqui que a maneira correta de realizar isso é mudar a condição de início, então o script é executado antes do processo de reinicialização ser iniciado:
# dotproject_backup
# This service makes a dump and rsync of a dotproject mysql database prior to shutdown.
description "dotproject backup"
author "Rodrigo Martinho"
start on starting rc RUNLEVEL=[016]
script
exec /home/user/script.sh
end script
Mas neste exemplo, novamente, o desligamento foi concluído antes do script.
Então, minhas perguntas são:
Agradecemos antecipadamente por qualquer ajuda,
Rodrigo Martinho.