【发布时间】:2017-10-26 18:53:50
【问题描述】:
尝试通过 shell 脚本运行 PHP 脚本,并在读取 shell 脚本时不断从 Monit 收到“语法错误”。
launchQueue.sh
#!/bin/sh
php /var/app/current/hello.php
shell 脚本将自行运行,并且我已打开所有权限。 Monit 从它自己的目录 /etc/monit.d/* 调用它——它应该在 monit 启动时运行其中的所有文件。
确切的错误为:“/etc/monit.d/launchQueue.sh:2: Error: syntax error 'php'”
- 按照this post 的建议,我已将它从monit.d 中移出,但我得到了同样的错误。
运行监视器版本 5.2.5
【问题讨论】:
-
对于初学者来说,您在
#!/bin/sh中缺少!。 -
我有“!”在那里,它是在堆栈中插入时的一种类型。
-
您的错误是指
launchQueue.sh,但您的示例显示launchHello.sh。您在此处显示的内容是否与导致此错误的文件相同?您确定上一行的末尾没有隐藏的回车符 (\r)(您可以检查od -a <filename>并在输出中查找“cr”)? -
是的,对不起。 launchQueue = launchHello - 这是漫长的一天。这已经占据了大部分......你提到的那个堆栈问题是我说的时候所指的那个,我已经从monit.d中取出了sh脚本。