Как сделать сценарий удара, который создает 40 одновременных экземпляров программы?

Я плохо знаком для bash и Linux. У меня есть программа, я записал, что хочу создать несколько одновременных экземпляров.

Прямо сейчас я делаю это путем открытия 10 новых терминалов и затем выполнения времен программы 10 (команда, которую я выполняю, php /home/calculatedata.php

Что самый простой путь состоит в том, чтобы сделать это использование сценария удара? Кроме того, я должен знать, как уничтожить экземпляры, потому что они выполняют бесконечный цикл.

Спасибо!!

7
задан Ulrich Eckhardt 27 February 2019 в 20:12
поделиться

5 ответов

Вы можете использовать цикл и запускать процессы в фоновом режиме с помощью & :

for (( i=0; i<40; i++ )); do
   php /home/calculatedata.php &
done

Если эти процессы являются единственными экземплярами PHP, который у вас установлен, и вы хотите убить их всех, самый простой способ - killall :

killall php
7
ответ дан 6 December 2019 в 10:50
поделиться

Вы можете запустить экземпляры с помощью простого цикла и завершающего «&» для выполнения каждого задания в фоновом режиме:

INSTANCES=40
for ((i=0; $i<$INSTANCES; ++i))
do
    mycmd &
done
1
ответ дан 6 December 2019 в 10:50
поделиться

, если у вас есть программа seq (1) (есть вероятность, что она у вас есть), вы можете сделать это немного более читаемым способом, например:

for n in $(seq 40); do
   mycmd &
done

В этом случае n переменная не используется. Надеюсь, это поможет.

2
ответ дан 6 December 2019 в 10:50
поделиться
for instance in {1..40}
do
  php myscript &
done
5
ответ дан 6 December 2019 в 10:50
поделиться

Как насчет запуска процесса php в фоновом режиме:

#!/bin/bash
for ((i=1;i<=40;i+=1)); do
  php /home/calculatedata.php &
done

Вы можете завершить все экземпляры этих фоновых процессов PHP, введя:

killall php

Make убедитесь, что у вас нет других запущенных процессов php, так как они тоже будут убиты. Если у вас много других процессов PHP, вы можете сделать что-то вроде:

ps -ef | grep /home/calculatedata.php | cut_the_pid | kill -9
4
ответ дан 6 December 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: