[英]How can I use both ActiveState and Strawberry perl on windows
[英]How can I gently kill a process in ActiveState Perl?
我需要使用特定的exitcode嗎?
Win32::Process::Create(
$ProcessObj,
"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",
"firefox -no-remote -P $prof_name",
0,
NORMAL_PRIORITY_CLASS,
".")|| die ErrorReport();
$ProcessObj->kill(0);
這樣就可以殺死它,但不是輕微的,它會導致Firefox配置文件出現問題。
除了Window的taskkill
之外的簡短常用方法是有力的。 感謝暴徒和melpomene 。
Win32::Process
文檔沒有說明Kill
或KillProcess
所做的方法,但它們看起來相當直率。 Windows確實提供了如何終止進程的漸變,例如, 通過winapi查看關於正常終止的帖子,即使它沒有UNIX的信號。 然而,這顯然沒有被模塊使用,也沒有被kill
(見最后)。
Windows自己的taskkill
應該很好地要求進程終止。 通過運行taskkill /?
查詢標志taskkill /?
在您系統的控制台中。 這是taskkill on MS technet
文檔。 例如,這會通過$pid
及其子項終止進程
my $pid = $ProcessObj->GetProcessID();
system("taskkill /t /pid $pid");
如果方法GetProcessID()
未返回實際ID,請參閱下面的鏈接以了解其他方法。
我現在無法在Windows上測試。 this post
有更多相關細節,第二部分。
在Windows上,Perl的kill
顯然是有力的。 來自perlport
...
kill($sig, $pid)
終止由標識的進程$pid
,並使其與退出狀態立即退出$sig
。
感謝melpomene的評論和文檔鏈接。
我相信, exitcode
只會告訴處理向系統報告的內容。
據我所知,在Perl你可以做到
kill -15 (pid)
誰輕輕地殺死了perl中的進程
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.