2013-12-09 5 views
0

Я пытаюсь объединить несколько команд Linux в одной строке для выполнения операции развертывания. Например,объединить несколько команд linux в одной строке

nohup php 1.php 
nohup php 2.php 
nohup php 3.php 
nohup php 4.php 

Я хочу, чтобы он выполнял их все параллельно, это возможно? .sh файл? tank you

ответ

0

вы также можете сделать-это так:

nohup sh -c 'php 1.php; php 2.php; php 3.php' & 

редактировать: , чтобы ответить на ваш вопрос, процесс параллельны. вы можете проверить это, написав команду ps. например: с sleep команды:

nohup sh -c 'sleep 30 && sleep 30' & 

выход:

.... 
6920 7340 7340  6868 pty2 17763 16:33:27 /usr/bin/sleep 
6404 4792 4792  7004 pty2 17763 16:33:26 /usr/bin/sleep 
.... 

редактировать 2: Ok попробуйте с parallel командой. (Вы, возможно, придется установить его)

Создайте файл cmd.txt:

1.php 
2.php 
3.php 

Затем выполнить эту команду (еще не пробовал, но он должен работать). Вы можете изменить --max-procs номера, если у вас есть более/менее 4 ядра:

cat cmd.txt | parallel --max-procs=4 --group 'php {}' 

надеюсь это работает ...

+0

работает нормально, но один за другим не параллельно, как запускать все файлы параллельно? – user3083317

+0

Когда я запускаю php-файлы и получаю uptput, я вижу, что файлы запускаются один за другим, а не параллельно ... – user3083317

+0

это работа спасибо !!! можно запустить его в фоновом режиме и выйти из шпатлевки? – user3083317

3

В linux вы можете использовать && для выполнения команд последовательно, и команда будет выполняться только в том случае, если предыдущий преуспел.

nohup php 1.php && nohup php 2.php && nohup php 3.php 

Edit: в случае, если вы не хотите проверки ошибок обеспечивается оператором &&, используйте точку с запятой (;) к цепочке команд, например:

nohup php 1.php ; nohup php 2.php ; nohup php 3.php 
1

Если вы не возражаете положив их на задний план, вы можете сделать это, поставив

& ;  

между 1-й/2-й и 2-й/3-й. Это будет выполнять 3 по существу параллельно.

&: выполнить в bg
; сделать 2-й команды, независимо от успеха 1

+0

, как я могу запустить много PHP файлов параллельно? – user3083317

+0

Вышеуказанное должно сделать это. Если вы проверите с помощью «ps» после, вы увидите 3 экземпляра работы php (при условии, что они достаточно длинны, чтобы не меньше нескольких секунд). Процессор обрабатывает это для вас. – gnometorule

Смежные вопросы