new start respawn com dois processos filhos

2

Eu tenho um script inicial assim:

start on runlevel [2345]
respawn

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

O problema é quando o processo do widget trava, ele não reaparece. Presumivelmente, porque o processo do registrador ainda está em execução. Alguma maneira de contornar isso?

    
por whatupdave 12.10.2011 / 07:33

1 resposta

1

Eu "terceirizo" o trabalho para um script bash:

start on runlevel [2345]
respawn

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

o script

#! /bin/bash -e

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

exit ${PIPESTATUS[0]}

O array PIPESTATUS em bash armazena os valores de retorno do pipe, neste caso usamos o valor de retorno do comando su .

    
por arrange 12.10.2011 / 10:02