2 votes

upstart respawn avec deux processus enfants

J'ai un script upstart comme suit :

start on runlevel [2345]
respawn

script
  exec su - ubuntu -c "cd /opt/app; bin/widget 2>&1 | logger -t 'widget'"
end script

Le problème est que lorsque le processus du widget s'arrête, il ne réapparaît pas. Probablement parce que le processus logger est toujours en cours d'exécution. Y a-t-il un moyen de contourner ce problème ?

1voto

DublinJimbo Points 314

Je confierais le travail à un script bash script :

start on runlevel [2345]
respawn

script
  exec /path/to/bash/script
end script

le script

#! /bin/bash -e

su - ubuntu -c "cd /opt/app; bin/widget" |& logger -t 'widget'

exit ${PIPESTATUS[0]}

T PIPESTATUS tableau dans bash stocke les valeurs de retour des tuyaux, dans ce cas nous utilisons la valeur de retour de la fonction su commandement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X