почему моя переменная $ Upstart $ JOB не интерполируется?

486
jcomeau_ictx

Я установил upstart в системе Debian 7.8, но в последний раз я проверял, что это не работает и в системе Ubuntu 11. Я выполняю свою работу с использованием sudo, но хотел бы сделать это правильно, если это возможно. вот мой файл .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" \ me@my.com < /tmp/$JOB.log end script post-stop exec sleep 60 

регистратор звонков завершен и выдает:

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

/ tmp не содержит * _env.log, а / var / log / upstart / не содержит файла для $ JOB.

Я получаю письма с темой error in .confи содержащиеtimeout: failed to run command '/scripts/.py': No such file or directory

есть идеи? Я в тупике.

[примечание: я закомментировал setuidстроку и до сих пор не радуюсь]

0

1 ответ на вопрос

0
jcomeau_ictx

в то время как я до сих пор не знаю, почему $JOBне расширяется, я обнаружил, используя for line in $(env); do logger env $line; doneв scriptстрофе, что $UPSTART_JOB в настоящее время установлен. Я решил пропущенную переменную $ HOME другим способом, специфичным для настройки моего клиента.

Похожие вопросы