Всем привет. Прошу дать ответ на этот странный для меня момент.
Есть некий скрипт script.php
Запускаем его от простого пользователя
php /var/www/script.phpДалее выполняем команду
ps -ef | grep -v grep | grep "/var/www/script.php" userName 32253 32155 1 13:46 pts/2 00:00:00 php /var/www/script.phpубиваем все процессы
sudo killall php -9Теперь запускаем этот же скрипт от рута
sudo php /var/www/script.phpСнова выполняем
ps -ef | grep -v grep | grep "/var/www/script.php"И уже видим вот что
root 32631 32155 0 13:49 pts/2 00:00:00 sudo php /var/www/script.php
root 32632 32631 1 13:49 pts/2 00:00:00 sudo php /var/www/script.phpПочему выдаётся что запущено два процесса?
В случае если поставить данный скрипт в крон от рута
sudo crontab -e * * * * * php /var/www/script.phpКоманда
ps -ef | grep -v grep | grep "/var/www/script.php"Выдаёт вот что
root 699 687 0 13:53 ? 00:00:00 /bin/sh -c php /var/www/script.php
root 700 699 0 13:53 ? 00:00:00 php /var/www/script.phpВопрос возник после вот этого. Файл script.php задан в кроне на выполенние каждую минуту, и что бы не плодить дублей в самом файле выполняется комадна
if( ( $countPR = ( int ) exec( 'ps -ef | grep -v grep | grep "' . __FILE__ . '" | wc -l' ) ) > 1 ){
echo 'Proccess (' . $countPR . ')' . PHP_EOL;
die();
}
И получается при запуске от рута всегда находит 2 процесса файла, при запуске от простого юсера, находит только 1, т.е. сам себя же.







