Acho que você deve ter esquecido algo, pois isso está bem claro no link que você forneceu:
5.2.1 Observações
Existem alguns pontos importantes relacionados ao desligamento do sistema:
[...]
- O Upstart nunca para um trabalho sem a condição
stop on
.[...]
5.2.2 Processo de encerramento
[...]
Um dos scripts executados é
/etc/init.d/sendsigs
.Este script eliminará todos os processos restantes que ainda não foram interrompidos (incluindo processos Upstart).
Neste script sendsigs
é explicado:
Upstart tem um método para definir um tempo limite de morte e, assim, o autor do trabalho pode quer que esperemos mais de 10 segundos (como no caso do mysql). (LP: # 688541)
Vamos aguardar até 300 segundos por qualquer trabalho no estado de parada / morte. Qualquer matar timeout maior do que isso será substituído pela necessidade de desligar. NOTA a reutilização de seq de cima, já que já esperamos até 10 segundos para eles.