gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 03:56:18 24 4
gpt4 key购买 nike

我是 Linux 系统的新手,我正在尝试制作一个可以无限次运行的 PHP 脚本。请注意,我使用的是 Debian 7

所以,我使用screen来打开一个窗口,到目前为止一切顺利,我已经成功运行了worker.php文件,并且我需要制作无限次运行php脚本的shell脚本。

所以我想出了这个:

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

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

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

所以我删除了 for ,并用一个简单的 echo 替换它,这会导致相同的错误,所以我写了这个问题,因为我不知道出了什么问题,服务器上都存在 shbash ,我想知道 shebang 是否错误,但是..我有以相同 开头的 automysqlbackup 脚本谢邦

你知道出了什么问题吗?我只是个新手。。不太了解。如果您想知道为什么我每秒运行一个文件,那是因为该文件充当游戏中队列的命令处理器。每分钟用 cron 运行它太慢了。 MySQL 触发器不符合我的需求,所以我被迫这样做。

问候。

最佳答案

从消息来看,您似乎有一个 <cr><lf>在 shebang 行的末尾(#! 行)。由于在 debian unix 上不是有效的行结束符(在 Windows 和其他一些类型的 unix 上),它被视为文件名的一部分,因此操作系统无法找到要运行的程序。

修复它需要这样的东西:

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

此外,当您使用 bash 作为 shell 时,您可能希望将 shebang 更改为也使用 bash,否则其他东西可能无法工作,而当您在命令提示符下键入它们时却可以正常工作

关于php - 如何在shell脚本中无限次运行php文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24578201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com