Я плохо знаком для bash
и Linux
. У меня есть программа, я записал, что хочу создать несколько одновременных экземпляров.
Прямо сейчас я делаю это путем открытия 10 новых терминалов и затем выполнения времен программы 10 (команда, которую я выполняю, php /home/calculatedata.php
Что самый простой путь состоит в том, чтобы сделать это использование сценария удара? Кроме того, я должен знать, как уничтожить экземпляры, потому что они выполняют бесконечный цикл.
Спасибо!!
Вы можете использовать цикл и запускать процессы в фоновом режиме с помощью &
:
for (( i=0; i<40; i++ )); do
php /home/calculatedata.php &
done
Если эти процессы являются единственными экземплярами PHP, который у вас установлен, и вы хотите убить их всех, самый простой способ - killall
:
killall php
Вы можете запустить экземпляры с помощью простого цикла и завершающего «&» для выполнения каждого задания в фоновом режиме:
INSTANCES=40
for ((i=0; $i<$INSTANCES; ++i))
do
mycmd &
done
, если у вас есть программа seq (1)
(есть вероятность, что она у вас есть), вы можете сделать это немного более читаемым способом, например:
for n in $(seq 40); do
mycmd &
done
В этом случае n
переменная не используется.
Надеюсь, это поможет.
Как насчет запуска процесса 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