wget下载完成后运行脚本(wget后台模式)

时间:2016-08-26 00:14:17

标签: php linux wget downloading

我想在wget完成下载后运行PHP脚本。这没问题,我可以使用像...这样的东西。

java:comp/env/

BUT!我使用wget(wget http://example.com && php script.php )的后台下载,返回类似wget -b的内容。

可以在后台运行wget并在下载后运行脚本吗?

谢谢你,齐纳

1 个答案:

答案 0 :(得分:0)

当您使用带-b选项的wget时,该命令会在其他shell会话(setsid)中创建子进程。原始进程在子进程启动后完成。

子进程在其他shell会话中运行,因此我们不能使用wait命令。但我们可以编写一个循环来检查子进程是否正在运行。我们需要subprocess的pid。

以示例:

this.removed

获取子进程的pid的另一种方法是解析wget的输出。

另外,为了理解wget的工作背景选项,您可以在C中看到源代码:

wget -b http://example.com && \
(
   PID=`pidof wget | rev | cut -f1 | rev`; 
   while kill -0 $PID 2> /dev/null; do sleep 1; done;
) && \
php script.php &