繁体   English   中英

如何在 MacOS Swift 应用程序中使用 kill 发送信号?

[英]How to send signal using kill in MacOS Swift application?

我在 Swift 中有一个 XCode MacOS 应用程序项目。 我需要向另一个进程发送信号。 调用kill(pid_t, Int32) function 不起作用。 我的进程接收器没有收到任何信号。 另外,我尝试使用Process从 swift 调用 bash 代码:

let task = Process()
task.launchPath = "/usr/bin/env"
task.arguments = ["kill", "-s", "SIGUSR1", receiverID]
task.launch()
task.waitUntilExit()
return task.terminationStatus

但是我在控制台kill: 6340: Operation not permitted中遇到错误。

你可以帮帮我吗? 如何向另一个进程发送信号?

权限提升包含在: Apple 的安全访问控制文档

但是,如果您使用NSTask从应用程序中生成原始子流程(Swift 中的Process ,感谢 Apple)。 它应该是一个孩子,你应该能够杀死它。 如果您使用NSTask运行它来生成它,您应该能够获取返回的Process实例并调用terminate()方法以将其杀死。

因此,如果您要使用与原始帖子类似的代码生成原始子项(产生一个名为taskProcess实例),您应该能够调用task.terminate()来终止该进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM