使用Swift执行'killall'时不允许进行操作

我正在尝试创建一个菜单栏应用程序,以隐藏桌面图标以及希望进行其他各种操作,主要是为了更多地了解Swift,并且由于某种原因,我无法使其正常工作。当我运行该程序并单击菜单项之一时,什么也没有发生,并且我在控制台中收到此警告:

killall: warning: kill -TERM 15175: Operation not permitted

其他命令也可以,但是我尝试使用“ killall”的任何变体都会吐出类似上面的内容。目前,我的代码如下所示:

@discardableResult

func killStuff(_ args: String...) -> Int32 {

let task = Process()

let pipe = Pipe()

task.launchPath = "/usr/bin/killall"

task.arguments = args

task.standardOutput = pipe

task.standardError = pipe

task.launch()

task.waitUntilExit()

let data = pipe.fileHandleForReading.readDataToEndOfFile()

if let output = String(data: data, encoding: .utf8) {

print(output)

}

return task.terminationStatus

}

我已经和Google上找到的可接受的解决方案进行了多种尝试,但是我不断收到相同的“不允许操作”的信息。当我在Xcode游乐场中运行相同的代码时,它工作正常。

提前致谢!

回答:

Mac应用程序(如iOS应用程序)在默认情况下处于沙箱状态,这意味着它们对系统资源的访问非常有限。例如,仅允许它们读取和写入少量沙盒目录,并且usr/bin绝对不允许读取/写入/执行,也不允许您启动进程。

我记得,通过删除您的权利文件,您正在构建未沙盒化的应用程序。您可以从Xcode运行它,但是需要更改系统设置才能从查找程序运行它。

以上是 使用Swift执行'killall'时不允许进行操作 的全部内容, 来源链接: utcz.com/qa/408430.html

回到顶部