GNU Parallel从网页运行

时间:2013-07-10 04:51:48

标签: php parallel-processing web-crawler gnu-parallel

我正在开发一个演示并使用GNU Parallel来并行运行我的网络抓取工具,以帮助缩短整体时间。我从php文件运行它,如下所示:

<?php

   ....
   exec(" parallel -j 8 < commands.txt", $output);
   ....
?>

当我从终端运行这个文件时,它工作正常并完成了commands.txt文件中给出的所有抓取工作,但是当我尝试从网页运行它时(我称之为php文件),parallel给出了以下错误:

parallel: Warning: $SHELL not set. Using /bin/sh.
Use of uninitialized value $ENV{"HOME"} in concatenation (.) or string at  /usr/bin/parallel line 943.
Use of uninitialized value $ENV{"HOME"} in concatenation (.) or string at   /usr/bin/parallel line 943.
Use of uninitialized value $ENV{"HOME"} in concatenation (.) or string at /usr/bin/parallel line 2207.
Use of uninitialized value $ENV{"HOME"} in concatenation (.) or string at /usr/bin/parallel line 2207.

有没有人遇到类似的问题,可以帮我解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:3)

GNU Parallel使用$ HOME和$ SHELL。 $ SHELL默认为/ bin / sh,但$ HOME没有默认值。所以设置$ HOME:

putenv('HOME=/tmp'); # Or some other place

您应该在$ HOME中拥有写入权限。

如果你想避免警告设置$ SHELL:

putenv('SHELL=/bin/sh');