2012-09-25 48 views
1

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

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

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

脚本只是echo一遍又一遍地重复相同的文字。

P.S. PHP在脚本中的最大执行时间被设置为0(无限),并且我没有直接访问服务器的权限,只有FTP。

回答

0

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

刚刚成立了一个新的cron作业,但有cron命令是一个东西,可以帮助您调试: 一个有用的人会

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

上运行的进程的ps命令列出的信息。这些标志,输出的一部分将是启动的过程中,原来的linux命令,所以我们可以grep线和寻找php因为原始命令可能是这样的:

php myscript.php 

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

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

-2
  1. ,直到脚本运行到
  2. 看一看运行(在php.ini文件或参数或者set_time_limit方法定义max_execution_time)的超时处理
  3. 发送kill命令脚本或等到发生超时

PS:你必须为php.ini文件 - 一个命令行和一个用于Apache的 - 一定要更改的max_execution_time在命令行ini文件

+0

没有shell访问权限。 –

+1

您仍然可以联系服务器支持来提高执行时间或在代码中设置执行时间。要检查正在运行的proccesses,你可以使用php函数.. – Philipp