为什么我的 Upstart $JOB 变量没有被插入?

为什么我的 Upstart $JOB 变量没有被插入?

我在 Debian 7.8 系统上安装了 upstart,但上次检查时发现它在 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" \
  [email protected] < /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 .conftimeout: failed to run command '/scripts/.py': No such file or directory

有什么想法吗?我被难住了。

[注意:我注释掉了该setuid行但仍然没有效果]

答案1

虽然我仍然不知道为什么没有被扩展,但我发现在节中$JOB使用for line in $(env); do logger env $line; donescript$UPSTART_JOB 正在设置。我以另一种特定于我客户设置的方式解决了缺少的 $HOME 变量。

相关内容