Как создать цикл for, запускающий множество процессов?

Как создать цикл for, запускающий множество процессов?

Я хочу протестировать какой-то баг, и для этого мне нужна ситуация, когда PID больше 99999. Я думаю о скрипте bash, цикле for. Есть идеи?

решение1

Вы можете сделать что-то подобное, чтобы запустить процесс с нужным PID.

while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done

Вы можете подождать, пока не получите нужный PID, и, возможно, заменить оператор echoна тот, который вам действительно нужно протестировать.

Рекомендации

будет ли использоваться тот же PID после того, как меня убьют?

РЕДАКТИРОВАТЬ

Почему растет номер PID? Это связано с тем, что вы снова и снова запускаете другой экземпляр bash?

Я верю, что то, что вы сказали, это то, что происходит. Это можно просто проверить, как показано ниже.

while true; do bash -c 'echo $$' ; done

Мы могли видеть, что PID продолжают увеличиваться, и из страницы руководства bashя вижу, что,

-c string Если присутствует опция -c, то команды считываются из строки. Если после строки есть аргументы, то они присваиваются позиционным параметрам, начиная с $0.

Насколько я понимаю, каждый echoоператор в приведенном выше тестировании выполняется как отдельный процесс, поэтому мы видим, что PID увеличиваются.

решение2

Что бы вы ни пытались сделать, это, скорее всего, лучший подход, но если вы полны решимости, что-то вроде

while [[ 1 == 1 ]]; do sleep 10000& done

запустит много sleeps, но запуск всех из них может занять некоторое время. Когда у вас будет достаточно процессов, просто нажмите, Ctrl-Cчтобы выйти из whileцикла.

Связанный контент