Usar exec
para iniciar el proceso está bien, pero al detenerlo, si es absolutamente necesario ejecutar un script específico o un conjunto de comandos, puede usar la pre-stop
estrofa.
pre-stop exec shutdown.sh
Supongo que ha intentado usar una estrofa ejecutiva y no funcionó, posiblemente porque su demonio requiere una limpieza especializada. Tenga en cuenta que los demonios con buen comportamiento deben recibir una señal desde el inicio cuando se detiene el trabajo, y si manejan la señal adecuadamente, no se necesitará una limpieza adicional.
Detener un trabajo implica enviarle SIGTERM. Si hay algo que debe hacerse antes de SIGTERM, hágalo aquí. Podría decirse que los servicios deben manejar SIGTERM con mucha gracia, por lo que esto no debería ser necesario.
Si hay algo crítico, como una descarga al disco, y aumentar el tiempo de espera de matar no es una opción, pre-stop no es un mal lugar para hacerlo.
Lea también esta sección para ver todo el flujo de trabajo de lo que sucede cuando detiene un trabajo. Observe cuándo se ejecuta la detención previa y cómo se envía una señal al proceso posterior, que es cómo el advenedizo maneja normalmente los trabajos de detención.
Mi fuente es el libro de cocina oficial de Upstart en: http://upstart.ubuntu.com/cookbook/