在 exec() 之后用 PHP 杀死一个进程

<?php


$dira = dirname(__DIR__);


$output = exec($dira . "\\htdocs\\PocketMine-MP-stable\\start.cmd");


echo $output


?>

我需要找到一种方法来杀死进程后,用exec()启动它,这是为了


泛舟湖上清波郎朗
浏览 163回答 2
2回答

慕尼黑5688855

exec 在进程终止后返回。因此,在执行之后,您无法终止该进程,因为它不再运行。你必须用proc_open运行这个过程,然后你可以用proc_terminate杀死它。编辑:实际上,如果您将命令的输出重定向到文件并附加到命令的末尾(或使用nohup;Linux只是可能),所以它在后台运行。但是让pid发送杀戮信号只能通过名称来实现,这并不是很可靠&

温温酱

您可以使用posix_kill来终止具有标识符&nbsp;pid&nbsp;的进程。用法//...exec($dira . "\\htdocs\\PocketMine-MP-stable\\start.cmd", $output);$pid = (int)$output[0];$killed = posix_kill(int $pid , int $sig);您应该使用以下命令查看系统中的所有信号及其代码:kill -l检查我的 Repl&nbsp;示例
打开App,查看更多内容
随时随地看视频慕课网APP