Upstart服务正在运行,停止并将不再运行

我确信有人在服务器上改变了一些东西,但我无法确定发生了什么。 记住这个服务在本周开始之前是完美的。 ( 注意:这是特定于一台服务器的,因为这个服务在其他4台服务器上运行的很好。

问题…

我有以下服务来运行PHP脚本

start on filesystem and net-device-up IFACE=eth0 respawn #exec echo OARSUDP ran at `date` >> /var/log/oarsudp.log script sudo -u root /usr/bin/php -f /home/src/www-server/services/job_info_parser.php end script 

如果我尝试启动它,我会收到一条消息 –

 sudo service oarsudp start oarsudp start/running, process 2604 

如果我立即检查我得到的状态 –

 sudo service oarsudp status oarsudp stop/waiting 

我试过的东西…

我添加了exec行来发送注释到日志。 只有当script标签及其内容被注释掉时才起作用。

我在命令行脚本标签内运行了PHP行,它完美的工作,没有发生错误。

我已经确认/etc/init/ (用户根,组根,权限644)内的权限是正确的。

我尝试改变服务的名称,仅仅是因为我读了一些关于一些相互冲突的名字的post,而我正在抓秸秆。

附加信息…

看起来服务试图重新生成,在服务死亡之前多次发送exec的日志消息。

我刚刚findUpstart的日志,他们说 –

“无法打开input文件:/home/src/www-server/services/job_info_parser.php”。

我试图改变权限,组和所有者,但没有任何工作。


有没有人见过这样的服务脚本停止工作? 如果是这样,原因是什么?如何解决? 还是我是一个白痴,在脚本或服务中引入了一个问题呢?

我在这里假设这是一个长期运行的守护进程types的任务; 如果是一次性运行和停止任务,则需要“任务”关键字。

1)就我所知,执行和脚本是相互排斥的; 他们有两种不同的方式来指定为这项工作运行什么。

2)我没有看到sudo的理由; upstart以root身份运行,你可以使用setuid / setgid来更改作业运行的用户/组,就像它不应该是root一样。

我怀疑sudo是令人困惑的东西,或隐藏真正的事情; 新贵对跟踪正在运行的任务的pid非常特别。 见http://upstart.ubuntu.com/cookbook/#expect有关血腥的细节; 实际上,看到整个页面的一些可能的其他线索