php根據檔案不同關閉同名進程

來源:互聯網
上載者:User
比如有個 a.exe 在 C:\test 和 C:\test\test 目錄下,在兩個目錄下把a.exe都運行,然後工作管理員裡面就出現了兩個a.exe 怎麼用php關閉,指定目錄下的a.exe 比如我想關閉C:\test\test 下的啟動並執行a.exe該怎麼辦


回複討論(解決方案)

windows不瞭解。

linux下,運行一個進程後都會有一個唯一的pid。可以通過一個shell指令碼來運行php指令碼的進程作為其子進程,運行後可以得到各自的pid,然後kill的時候直接kill相關的pid既可。

php本身也可以通過getmypid函數擷取當前指令碼進程pid。不過似乎是不能殺死自身進程,還是需要個master進程對來控制。

python不太會,如果是ruby的話,程式自己也能獲得pid,但貌似也無法殺死自己。
最簡單的方法就是用shell做主控進程。

向作業系統發出相應的命令就可以了
但遺憾的是:你做不到,因為 php 沒有足夠的許可權

windows不瞭解。

linux下,運行一個進程後都會有一個唯一的pid。可以通過一個shell指令碼來運行php指令碼的進程作為其子進程,運行後可以得到各自的pid,然後kill的時候直接kill相關的pid既可。

php本身也可以通過getmypid函數擷取當前指令碼進程pid。不過似乎是不能殺死自身進程,還是需要個master進程對來控制。

pytho…… windows 下也有唯一的pid 不過主要是你不知道哪個pid是屬於哪個目錄下的程式,我要做的相當與是一個監控程式,監控該目錄下的那個程式記錄的日誌情況,如有問題就關閉該目錄下的那個進程,但是其他目錄下又有同名的進程

向作業系統發出相應的命令就可以了
但遺憾的是:你做不到,因為 php 沒有足夠的許可權

你用一個單獨的指令碼來啟動你所謂的兩個不同的目錄的程式,啟動後可以立刻獲得其pid,然後就記錄下來唄。不過還是那個問題,php貌似沒那個許可權殺掉系統進程。

不太熟悉windows的批處理,在linux下,這個主控進程應該用shell指令碼來做。它負責啟動兩個進程,啟動後立刻記錄進程pid,並且可以與哪個目錄的程式關聯起來。

tasklist 列出所有的進程,和相應的資訊
tskill 查殺進程

更一般的
ntsd -c q -p PID

但你肯定是不可能用運行於 web 方式下的 php 實現的
但你可以用 VC 或 VB 寫個小程式間接實現
相關代碼在網上有,一搜一大堆。因為這是個普遍的需求

你用一個單獨的指令碼來啟動你所謂的兩個不同的目錄的程式,啟動後可以立刻獲得其pid,然後就記錄下來唄。不過還是那個問題,php貌似沒那個許可權殺掉系統進程。

不太熟悉windows的批處理,在linux下,這個主控進程應該用shell指令碼來做。它負責啟動兩個進程,啟動後立刻記錄進程pid,並且可以與哪個目錄的程式關聯起來。 那兩個進程是自己手動啟動,不是通過管理啟動,所以沒記pid

#7 給你的是 window 下的
linux 下可用 ps 擷取進程列表,用 kill 殺死進程
當然還是那句話:你需要有做夠的許可權!web 方式下的 php 許可權不夠

已成功 謝謝各位 $path = array("C:\test","C:\test\test");
exec("wmic process where name='a.exe' get executablepath,processid", $result, $return);
if($return != 0)
return;
foreach ($result as $rows)
{
$data = preg_split("/ +/", $rows);
if(in_array($data[0],$path))
{
system("ntsd -c q -p ".$data[1], $return1);
if($return1 == 0)
echo "close success";
else
echo "close failed";
}
}
?>

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.