Как получить список запущенных php-скриптов с помощью PHP exec ()?

Мне нужно знать и убивать, если есть какие-либо процессы, выполняющие указанный PHP-скрипт. Возможно ли получить список процессов, выполняющих sample.php, используя exec () и скрипт php.

exec("ps auxwww|grep sample.php|grep -v grep", $output); 

Это будет работать, однако, если PHP работает в режиме CGI. Если он работает как тип SAPI, вы никогда не увидите «sample.php» в списке процессов, просто «httpd».

Нет. Поскольку PHP запускается через apache / nginx. В случае доступа к командной строке proccess называется PHP, а не фактическим именем вашего скрипта.

Это зависит от множества факторов, включая ОС, версию PHP и т. Д., Но вы можете попробовать использовать сигналы, чтобы получить скрипт, чтобы дать вам свое имя, а затем прекратить работу, если он соответствует. Или, если скрипт зарегистрирует свой pid, а затем сравните с запущенными процессами.

http://stuporglue.org/handling-signals-in-php/

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

загрузить yikes.php. идентифицируйте идентификатор процесса (это должно быть первое целое число, в которое вы попадаете в каждом индексе массива). скопируйте и вставьте его в url как? pid = XXXXX. и все.

 //http://website.com/yikes.php?pid=668 $pid = $_GET['pid']; exec("ps auxwww|grep name-of-file.php|grep -v grep", $output); echo '<pre>'; print_r($output); echo '</pre>'; // exec("kill $pid");