por que minha variável $ JOB do Upstart não está sendo interpolada?

0

Eu instalei o upstart em um sistema Debian 7.8, mas pela última vez eu verifiquei que isso não funcionou em um sistema Ubuntu 11 também. Eu tenho meus empregos rodando usando o sudo, mas gostaria de fazer o certo, se possível. aqui está o meu arquivo .conf:

start on stopped RUNLEVEL=[2345]
stop on runlevel [!2345]
setuid newuser
respawn
pre-start exec logger "pre-start JOB $JOB in HOME $HOME"
script
 logger "start JOB $JOB in HOME $HOME"
 echo "DEBUG start: 'env'" >> /tmp/$JOB_env.log
 timeout 360m $HOME/scripts/$JOB.py \
  >/tmp/$JOB.log 2>&1 || mail -s "error in $JOB.conf" \
  [email protected] < /tmp/$JOB.log
end script
post-stop exec sleep 60

o registrador chama completo e produz:

Mar  7 15:56:13 vps39987 logger: pre-start JOB  in HOME 
Mar  7 15:56:13 vps39987 logger: start JOB  in HOME

/ tmp não contém * _env.log e / var / log / upstart / não contém nenhum arquivo para $ JOB.

Eu recebo e-mails com assunto error in .conf e contendo timeout: failed to run command '/scripts/.py': No such file or directory

alguma ideia? Estou perplexo.

[nota: eu comentei a linha setuid e ainda não tenho alegria]

    
por jcomeau_ictx 08.03.2015 / 01:13

1 resposta

0

enquanto eu ainda não sei porque $JOB não está sendo expandido, eu encontrei usando for line in $(env); do logger env $line; done na sub-rotina script que $UPSTART_JOB está sendo definida. Eu resolvi a variável $ HOME ausente de outra forma específica para a configuração do meu cliente.

    
por 09.03.2015 / 08:31

Tags