выполнить команду bash if else в php (bash против php) - PullRequest
0 голосов
/ 04 сентября 2018

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

Команда с переменной php

$cmd = "if [[ `ps auxww | grep -v grep | grep ".$process_file." | grep '".$find."'`  == '' ]] ; then ".$cmd2."  fi";

echo $cmd."\n";

Выполненная команда после замены переменных (что на самом деле будет работать на bash):

if [[ `ps auxww | grep -v grep | grep /home/new_jig.php | grep 'test_51 1714052'`  == '' ]] ; then  php /home/new_jig.php test_51 1714052 & fi;

выполнение команды

exec($cmd,$out,$res);

Обратите внимание, что я также разделил проблему на два оператора и выполнил их. Но это отнимает много времени. Это вызывает проблемы, когда у меня более 2000 в списке, и команда выполняется для всех. Это займет около 1 или более 1 минуты, чтобы добраться до последнего номера.

Я хочу достичь этого в течение 10 секунд. Пожалуйста, помогите мне достичь оптимальной производительности.

Спасибо Jignesh

1 Ответ

0 голосов
/ 10 сентября 2018

каким-то образом я могу заставить его выполнить следующую команду

$ process_file = phpfile, который выполняет некоторые функции

$ cmd2 = "php ".$process_file." 1212 >/dev/null 2>/dev/null &";

$ cmd11 = "if ps -auxw | grep -v grep | grep '".$process_file."' | grep '".$find."' &> /dev/null; затем echo 1;". $ Cmd2. "; Fi";

shell_exec ($ cmd11. "> / Dev / null 2> / dev / null &");

До этого: для запроса 1100 процесс занимал около 60 + секунд После этого: оно завершается в промежутке от 20 до 30 секунд

...