1

在 Applescript 应用程序中作为 shell 脚本运行时,我遇到了 xargs 和 Wget 的问题。我希望 Wget 在后台运行 4 个并行进程。问题:基本上,当我尝试在后台运行该进程时

cat urls.txt | xargs -P 4 -n 1 /usr/local/bin/wget -q -E -b 1> NUL 2> NUL

对于从 .txt 文件传入的每个 URL,显然会启动一个 Wget 进程。这对用户的记忆来说太沉重了。但是,当我在前台运行它时,使用以下内容:

cat urls.txt | xargs -P 4 -n 1 /usr/local/bin/wget -q -E

我似乎得到了我需要的四个并行 Wget 进程。有谁知道如何让这个脚本在只有 4 个进程的后台运行?我有点新手,恐怕我无法弄清楚为什么后台处理过程会导致这种变化。

4

2 回答 2

1

您可以改为在后台运行 xargs :

cat urls.txt | xargs -P4 -n1 wget -q &

或者,如果您想将控制权返回给 AppleScript,请放弃 xargs 进程:

do shell script "cat urls.txt | xargs -P4 -n1 /usr/local/bin/wget -q & disown $!"
于 2013-07-03T17:12:33.870 回答
0

据我所知,我已经解决了这个问题

cat urls.txt| (xargs -P4 -n1 wget -q -E >/dev/null 2>&1) &

可能有更好的解决方案,虽然......

于 2013-07-04T08:29:50.343 回答