在exec()之后使用PHP终止进程

在exec()之后使用PHP终止进程,php,Php,在用exec()启动进程后,我需要找到一种方法来终止进程。这是一种方法,您可以使用它来终止标识符为pid的进程 用法 <?php $dira = dirname(__DIR__); $output = exec($dira . "\\htdocs\\PocketMine-MP-stable\\start.cmd"); echo $output ?> 您应该使用:kill查看系统中的所有内容 -l 一旦进程终止,请检查我的Repl执行返回。因此,在执行exec之后,您无法终止

在用exec()启动进程后,我需要找到一种方法来终止进程。这是一种方法,您可以使用它来终止标识符为pid的进程

用法

<?php

$dira = dirname(__DIR__);

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

echo $output

?>
您应该使用:kill查看系统中的所有内容 -l


一旦进程终止,请检查我的Repl执行返回。因此,在执行exec之后,您无法终止进程,因为它不再运行。您必须在proc_打开的情况下运行进程,然后可以使用proc_terminate终止进程

编辑:
实际上,如果您将命令的输出重定向到一个文件并将
&
附加到命令的末尾(或者可能仅使用nohup;Linux),那么可以让exec更早地返回,以便它在后台运行。但是让pid向其发送kill信号只能通过名称来实现,这不是非常可靠的

他们如何获得pid?“如果return_var参数与output参数一起出现,则执行命令的返回状态将写入此变量。”check doc:不确定返回状态是否为pid。阿卡,这个答案可能不够。我在这里试过了
//...
exec($dira . "\\htdocs\\PocketMine-MP-stable\\start.cmd", $output);
$pid = (int)$output[0];
$killed = posix_kill(int $pid , int $sig);