簡體   English   中英

以編程方式使用 swift 殺死進程

[英]Killing a process with swift programmatically

我正在嘗試找到一種方法來識別和終止 Mac 應用程序中的特定進程。 是否有內置的 class 具有可以返回正在運行的進程列表的功能? 有一種方法可以使用Process()運行終端命令並執行/usr/bin/killall命令來終止進程,但我需要以編程方式執行此操作,因為使用應用程序運行終端命令不是一個好習慣。 例如,刪除文件也可以通過使用Process()運行終端命令來完成,而更好的方法是使用FileManager.default.remomveItem()

如果您正在尋找應用程序(而不是進程),請參閱NSWorkspace.shared.runningApplications 您可以在這些元素上調用terminate()forceTerminate()

如果你想要一個所有 BSD 進程的列表(例如,你會從調用ps中得到什么),那是用sysctl完成的(Q&A 中的代碼在 C;你必須將它包裝到 Swift,或者重寫它)。 我不相信有任何 Cocoa 包裝器。 要殺死一個進程,一旦你有了它的 PID,就使用signal ,這就是kill Unix 命令所使用的。 通常你想發送 SIGTERM,這是一個正常的關機。 要強制終止進程,請發送 SIGKILL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM