如何在shell脚本中无限次运行php文件

时间:2014-07-04 16:29:18

标签: php linux bash shell debian

我是linux系统的新手,我正在尝试让PHP脚本无限次地运行。请注意,我正在使用Debian 7

所以,我正在使用screen来打开一个窗口,到目前为止一直很好,我已经运行了worker.php文件,我需要制作运行php脚本的shell脚本无限次。

所以我想出了这个:

#!/bin/sh
for (( ; ; ))
do
    /usr/bin/php worker.php
    sleep 1
done

问题是,当我尝试在./worker.sh中运行screen时,出现此错误:

bash: ./worker.sh: /bin/sh^M: bad interpreter: No such file or directory

所以我删除了for,并将其替换为简单的echo,这导致了同样的错误,所以我写了这个问题因为我不知道什么是错的,shbash都存在于服务器上,我想知道shebang是否错误但是......我的automysqlbackup脚本以相同的{{}开头1}}。

你知道出了什么问题吗?我只是个新手..真的不太了解。 如果你想知道为什么我每秒都运行一个文件,那是因为这个文件在游戏中用作队列中的命令处理器。每分钟用cron运行它太慢了。 MySQL触发器不能满足我的需求,所以我不得不这样做。

问候。

1 个答案:

答案 0 :(得分:0)

从消息中看来,你的shebang线末端有一个<cr><lf>(#!one)。由于不是debian unix上的有效行结尾(它在windows和其他一些unix版本上),它被作为文件名的一部分,因此o / s无法找到要运行的程序。 / p>

修复它需要这样的东西:

tr -d '\015' < worker.sh > worker_nocr.fixed

另外,当您使用bash作为shell时,您可能希望更改shebang以使用bash,或者在命令提示符下键入它们时其他可能无法正常工作