Как выполнить одновременные скрипты PHP CLI в Mac - PullRequest
2 голосов
/ 27 марта 2012

У меня есть 50 файлов php, которые я хотел бы запустить одновременно из командной строки. Сейчас я запускаю их в нескольких окнах CLI, используя код:

php Script1.php

Я хотел бы иметь возможность вызывать один единственный файл сценария, который будет выполнять все 50 файлов php одновременно. Я читал о том, как заставить командную строку не ждать вывода, но я не могу заставить ее работать.

Я новичок как в MAC, так и в сценариях - может, мне не нужен скрипт? Есть ли другое решение на основе Mac, которое может сделать это без необходимости открывать 50 отдельных окон терминала?

Ответы [ 3 ]

5 голосов
/ 27 марта 2012

Вы можете просто добавить амперсанд '&' для разделения каждой команды:

php script1.php & php script2.php & php script3.php ...

Этот символ амперсанда скажет оболочке выполнить команду на фоне.

Чтобы проверить вывод, вы можете перенаправить его в файл:

php script1.php > script1.log.txt & php script2.php > script2.log.txt

И вы можете просто сделать tail на нем, чтобы прочитать журнал:

tail -f script1.log.txt
1 голос
/ 27 марта 2012

Вы также можете запускать их одновременно, но не в фоновом режиме.

php test1.php; php test2.php;

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

1 голос
/ 27 марта 2012

Если ваш сценарий имеет правильную нумерацию от 1 до 50, вы можете попробовать следующее в .command файле:

i=1;
while [ $i -lt 51 ]
do
osascript -e 'tell app "Terminal"
    do script "php Script$i.php"
end tell' &
i=$[$i+1]
done

Это должно открыть 50 отдельных окон терминала для каждого запущенного сценария {$ i}.PHP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...