Je suis en train de porter quelques scripts de service de style SysV pour HBase (un service Java) vers Upstart.
Les scripts sysv n'appellent pas directement java
, mais appellent plutôt hbase-daemon.sh
. Il s'agit d'un outil similaire à start-stop-daemon
qui est livré avec le package et qui tire beaucoup de configurations et se termine finalement par un nohup java ... &
pour exécuter réellement le processus en tant que démon.
Comme la logique de configuration dans hbase-daemon.sh
est impliquée, je préférerais ne pas la modifier ou la réécrire (pour supprimer le nohup
) et plutôt appeler directement Upstart.
Cela semble être ce pour quoi la clause expect
est prévue, sauf que dans mon cas ça ne fonctionne pas. Même avec expect daemon
(le cas à deux bifurcations), je finis par suivre le mauvais pid au démarrage du service. Cela suggère que mon scénario se divise trop, ou peut-être que nohup
ne devrait pas être géré avec expect
, ou encore autre chose.
Comment puis-je utiliser Upstart pour gérer un service qui s'attend à être démarré avec un script qui appelle nohup
?