2011-01-07 79 views
0

如果Cocoa應用程序需要終止另一個進程(它沒有產生),那麼在10.5 OS X上可以使用哪些API來執行此操作?請注意,在Cocoa應用程序中不會知道要終止的進程的進程ID。需要終止的過程也是一個可可過程。如何從Cocoa應用程序中終止進程(不是自己)

+1

如果進程ID未知,進程名稱是否已知? – 2011-01-07 06:17:13

回答

2

使用NSWorkspace或Process Manager查找進程並獲取其PID,然後像平常一樣使用kill

2

IIRC,NSWorkspace將只返回由用戶自己擁有的進程,但是,當然有很多不同的方式來照顧這:

1)Document by Appple, QA1123

2)AGProcess from AGKit

+0

http://developer.apple.com/library/mac/#samplecode/MachPortDump/Listings/MachPortDump_c.html – 2011-12-08 05:36:34

0
NSRunningApplication* app = [NSRunningApplication runningApplicationWithProcessIdentifier:pid]; 
[app terminate]; // ask the target to terminate self 
[app forceTerminate]; // the target will not save the data 
0

你必須在殺死它之前檢索進程ID。要殺死一個進程,只需發送SIGABT,SIGTERM或SIGKILL信號給它。

相關問題