Мне нужно знать и убивать, если есть какие-либо процессы, выполняющие указанный 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, а затем сравните с запущенными процессами.
это помогло мне убить процессы изгоев через параметр 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");