我想在wget完成下载后运行PHP脚本。这没问题,我可以使用像...这样的东西。
java:comp/env/
BUT!我使用wget(wget http://example.com && php script.php
)的后台下载,返回类似wget -b
的内容。
可以在后台运行wget并在下载后运行脚本吗?
谢谢你,齐纳
答案 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 &