Поддержите 100 экземпляров выполнения программы

Как корень, введите в оболочке:

# cfdisk /dev/sdX  #Where /dev/sdX is the device 

это покажет Вам что-то вроде этого:

cfdisk (util-linux-ng 2.18)

                          Disk Drive: /dev/sdb
                    Size: 3926949888 bytes, 3926 MB
          Heads: 255   Sectors per Track: 63   Cylinders: 477

Name        Flags      Part Type  FS Type          [Label]        Size (MB)

sdb1                    Primary   vfat             [ABDEL]          1998.75
sdb2        Boot        Primary   ext3             [linx]           1924.72

если устройство будет иметь свободное пространство, то его покажут.

Примечание: cfdisk на самом деле является на терминальном основанным редактором раздела.

12
31.01.2012, 17:22
3 ответа

Можно использовать:

ps h --ppid $$ | wc -l

для получения количества дочерних процессов из сценария удара (помнят, это включает PS). Таким образом, если Вы хотите иметь 1 000 процессов, Вы проверяете, чтобы видеть, возвращается ли это 1001. Если не разжигают их с:

cmd &

так, чтобы они работали как дети текущего сценария (и поэтому будьте включены в количество.) Можно затем спать некоторое время, затем проверить снова в цикл навсегда. Одна вещь иметь в виду состоит в том при порождении других процессов, необходимо будет изменить ps управляйте для фильтрации процессов, которые Вы хотите.

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

1
27.01.2020, 19:56

Я использовал бы pgrep|wc -l или что-то как этот в простом сценарии оболочки. Ожидайте одна секунда (или меньше на Linux, если Вам нравится к) между каждым, сверяются sleep.

0
27.01.2020, 19:56

Если бы Ваш сценарий умирает и просто ронял бы к оболочке, можно использовать сценарий обертки для каждого экземпляра:

while [ 1 == 1 ] ; do /path/to/script ; done

или Вы пишете некоторую обертку, которая разветвляет сценарии и использование wait/waitpid поймать мертвые процессы.

0
27.01.2020, 19:56
  • 1
    я, по крайней мере, бросил бы сон там в конец на всякий случай сценарий, имеет некоторое terminal-always-fails условие (часть полна, не может прочитать файл конфигурации, и т.д.).. Иначе у Вас могло быть 100 процессов, сходящих с ума для части ЦП. Дополнительно - 100 * (колотят процесс + начальное место запуска провального приложения) == потенциально нетривиальная сумма поршня), –  synthesizerpatel 06.02.2012, 07:28

Теги

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