Использование bash для работы с моим PHP-скриптом - PullRequest
1 голос
/ 18 ноября 2010

Хорошо, я довольно озадачен тем, как это сделать.У меня есть PHP-скрипт, который перебирает некоторые URL.URL-адреса хранятся в urls.txt, и он должен вызывать скрипт php как php urlcheck.php LINE_FROM_urls.txt

Когда он достигает заданного числа процессов, я хочу, чтобы он спал в течение 5 секунд, например

COMCHECK=`ps aux | grep -c php`

while [ $COMCHECK -ge 150 ];do
COMCHECK=`ps aux | grep -c php`
echo "Sleeping"
sleep 5

и затем я хочу, чтобы он проверил снова.Если его -le 150, запустите следующий URL и т. Д.

Я понятия не имею, как это сделать.Мой удар удивительно ограничен, и, честно говоря, язык меня утомляет.

Любая помощь?

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Вы можете попробовать что-то вроде:

limit=150  

# read lines from the file urls.txt one by one.
while read line; do

        # check number of running php processes.
        while [ $(ps aux | grep -c php) -ge $limit ];do
                # if it's >= limit..sleep.
                echo "Sleeping"       
                sleep 5
        done

        # limit not reached..run another process..in background. 
        php urlcheck.php  $line &

done < urls.txt
1 голос
/ 18 ноября 2010
while read URL; do
    while (( $(ps aux | grep -c php) >= 150 )); do
        sleep 5
    done

    php urlcheck.php "$URL" &
done < urls.txt

# Optional: wait for all PHP processes to finish.
wait
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...