<?php$dira = dirname(__DIR__);$output = exec($dira . "\\htdocs\\PocketMine-MP-stable\\start.cmd");echo $output?>我需要找到一种方法来杀死进程后,用exec()启动它,这是为了
2 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
exec 在进程终止后返回。因此,在执行之后,您无法终止该进程,因为它不再运行。你必须用proc_open运行这个过程,然后你可以用proc_terminate杀死它。
编辑:实际上,如果您将命令的输出重定向到文件并附加到命令的末尾(或使用nohup;Linux只是可能),所以它在后台运行。但是让pid发送杀戮信号只能通过名称来实现,这并不是很可靠&
温温酱
TA贡献1752条经验 获得超4个赞
您可以使用posix_kill来终止具有标识符 pid 的进程。
用法
//...
exec($dira . "\\htdocs\\PocketMine-MP-stable\\start.cmd", $output);
$pid = (int)$output[0];
$killed = posix_kill(int $pid , int $sig);
您应该使用以下命令查看系统中的所有信号及其代码:kill -l
检查我的 Repl 示例
- 2 回答
- 0 关注
- 162 浏览
添加回答
举报
0/150
提交
取消