1

我基本上有一个 cron 工作每分钟调用一个脚本。如果前一个脚本仍在运行,则脚本立即停止(检查前一个脚本的活动时间)。

所以我犯了一个错误,脚本进入了一个无限循环(我知道它至少被 cron 调用过一次)。我创建了一个修复程序并将其上传到服务器,但我仍然想知道:

  1. 错误的脚本将运行多长时间?
  2. 我怎么知道它是否仍在运行?
  3. 什么会终止脚本,为什么?

该脚本只是echo一遍又一遍地输出相同的文本。

PS PHP 在脚本中的最大执行时间设置为 0(无限),我无法直接访问服务器,只有 FTP。

4

2 回答 2

0

我怎么知道它是否仍在运行?

只需设置一个新的 cron 作业,但让 cron 命令成为可以帮助您调试的东西:一个有用的命令是

ps -af | grep php > /some/path/to/mylogfile.txt

ps命令列出了正在运行的进程的信息。使用这些标志,部分输出将是启动该进程的原始 linux 命令,因此我们可以 grep 该行并查找,php因为原始命令可能类似于:

php myscript.php

在 cron 作业运行后,输出被重定向到mylogfile.txt供您手动读取。

进程 ID 应该是输出的一部分。然后,您可以kill在该进程 ID 上使用该命令,同样只需将该命令作为假 cron 作业输入即可。

于 2013-03-02T16:38:15.943 回答
-2
  1. 直到脚本超时(max_execution_time在 php.ini 文件或 set_time_limit 方法中定义)
  2. 查看正在运行的进程
  3. 向脚本发送 kill 命令或等待超时

PS:你必须 php.ini 文件 - 一个用于命令行,一个用于 Apache - 请务必更改命令行 ini 文件中的 max_execution_time

于 2012-09-25T23:18:44.253 回答