процесс nohup продолжайте закрывать

383
Wesley Schravendijk

Я пытаюсь запустить 10.000 процессов для создания учетных записей телефонов звездочек. Это для стресс-тестирования нашего сервера Asterisk.

Я вызвал с помощью php функцию exec () для создания команды Linux.

nohup /usr/src/pjproject-2.3/pjsip-apps/bin/pjsua-x86_64-unknown-linux-gnu --id=sip:%s@13.113.163.3 --registrar=sip:127.0.0.1:25060 --realm=* --username=%s --password=123456 --local-port=%s --null-audio --no-vad --max-calls=32 --no-tcp >>/dev/null 2>>/dev/null & $(echo -ne \'\r\')" 

Все работает отлично, и сценарий делает именно то, что я ожидаю. Но тут возникает и следующая проблема; после создания 10 000 учетных записей все процессы внезапно уничтожаются.

Почему это?

Не правда ли, что функция nohup поддерживает процессы? После вызова функции nohup я также вызываю функцию disown.

Спасибо вам за помощь

[править] Я также попробовал этот проект с экраном функций, функции экрана работают как шарм, но проблема заключается в использовании процессора. Чтобы создать 10.000 экранов, сервер Linux начинает сходить с ума, поэтому я выбрал nohup.

0
Замените ">> / dev / null 2 ​​>> / dev / null" на ">> /tmp/pjsua.log 2> & 1", и результат может сообщить вам, что произошло. Что вы ожидаете от "$ (echo -ne \ '\ r \')"? Почему сингл "в конце вашей команды? Gerard H. Pille 6 лет назад 0
Он использовался для ввода ввода после ввода кодированного значения. Также пробовал без него, но это тоже не сработало. Все работает, что мы хотим, только процессы убиты после того, как файл php сделан. Wesley Schravendijk 6 лет назад 0
Код работает в фоновом режиме. Если он нуждается во вводе, он остановится. Вы можете обеспечить ввод через «перенаправление ввода», например «<» или «<<» (перед «&» !!) Gerard H. Pille 6 лет назад 0
Я думал так же, но если я запускаю скрипт без php, проблем нет. Я могу держать его неактивным неограниченное время. Wesley Schravendijk 6 лет назад 0
Тогда зачем все усложнять? Кто звонит по php и как? Вы уверены, что exec () php понимает синтаксис оболочки? Gerard H. Pille 6 лет назад 0
Невозможно запустить 10.000 учетных записей вручную. Я звоню php сам. Сценарий не имеет никаких проблем, учетная запись создана, результат отображается на экране. Это только после того, как скрипт php закончен, он убивает процессы, они не остаются в фоновом режиме. Wesley Schravendijk 6 лет назад 0
Вы пробовали shell_exec ()? Gerard H. Pille 6 лет назад 0
Я не сделал, не так ли? Wesley Schravendijk 6 лет назад 0
Нет, и есть также система (). Не то, чтобы это имело значение, php убивает своих детей, когда закончит. Просто напишите сценарий оболочки, чтобы запустить ваши 10000 программ. Gerard H. Pille 6 лет назад 1

0 ответов на вопрос

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