Como o servidor postgresql ainda está usando o script de inicialização do System-V obsoleto, há duas opções:
- Emite eventos do script de inicialização do System-V existente
- Portar o script de inicialização do System-V existente para o trabalho do upstart
Em ambos os casos, você pode usar start on started-postgresql
e stop on stopping-postgresql
em seu trabalho. Como mencionado no comentário, my-openerp irá iniciar / parar sempre no início / parada postgresql e não apenas após a atualização.
Se você optar por emitir eventos a partir do script de init System-V existente, será necessário adicionar /etc/init.d/postgresql:
# just before the service is started
initctl emit starting-postgresql
# just after the service is started
initctl emit started-postgresql
# just before stopping the service
initctl emit stopping-postgresql
# just after the service is stopped
initctl emit stopped-postgresql
Para obter detalhes, consulte Dicas úteis na seção Serviços de escrita na página Howto de inicialização do Ubuntu.
Caso você opte por criar o trabalho do Upstart, a configuração mais simples pode ser assim:
start on runlevel [2345]
stop on runlevel [016]
respawn
exec su -c "/etc/postgresql/bin/postgres -D /usr/local/pgsql/data" postgres
A configuração Upstart mais elaborada pode ser encontrada aqui .
Gostaria de brincar e, em vez de iniciar o postgresql no runlevel [2345], talvez diga
start on filesystem and net-device-up IFACE!=lo
ou
start on started networking
Você também pode considerar adicionar uma estrofe de tempo limite para matar
kill timeout 300