亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 exec() 之后用 PHP 殺死一個進程

在 exec() 之后用 PHP 殺死一個進程

PHP
泛舟湖上清波郎朗 2022-09-03 16:59:20
<?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發送殺戮信號只能通過名稱來實現,這并不是很可靠&


查看完整回答
反對 回復 2022-09-03
?
溫溫醬

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 示例


查看完整回答
反對 回復 2022-09-03
  • 2 回答
  • 0 關注
  • 190 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號