@tgarl

Как проверить наличие запущенного процесса и получить его PID?

Ранее работал вот такой способ
function is_running_process2($process)
    {
        exec('ps -C php -o pid=,command=', $output);
        foreach ($output as $row) {
            preg_match('/-f (.*)/', $row, $result);
            if (!empty($result[1]) && $result[1] == $process) {
                return true;
            }
        }
        return false;
    }
if (!is_running_process2($_SERVER['DOCUMENT_ROOT'] . '/get_potok.php')) {
// запускаем
}


сейчас он не работает, т.е. запуск происходит постоянно

но если выполнить команду
ps -ef | grep "get_potok.php"
то результат будет вот такой
root     1006875 1006867  0 13:27 ?        00:00:00 sh -c /usr/bin/php7.4 -f /var/www/site.ru/get_potok.php
root     1006876 1006875  0 13:27 ?        00:00:00 /usr/bin/php7.4 -f /var/www/site.ru/get_potok.php

и их набирается под 100

Подскажите как мне поправить код и удалить все лишние (конечно можно удалить вручную каждый отдельно), но почему перестал работать ps -C php
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Может это потому, что имя программы должно быть не php, а php7.4 ?

P.S. В ps -C php.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы