一段时间后,NSTask和STPrivileged Task就死了

时间:2014-11-20 09:30:55

标签: objective-c macos swift

我正在尝试使用STPrivilegedTask运行一个长时间运行的任务。 它开始很好,工作2分钟。但它只是停止执行(与直接从终端运行相比)。 这是代码(Swift)

    NSNotificationCenter.defaultCenter().addObserverForName(NSFileHandleDataAvailableNotification , object: nil, queue: nil, usingBlock: { note in
        var data = note.object?.availableData
        let output = NSString(data: data!, encoding: NSUTF8StringEncoding)
        self.logText.stringValue = self.logText.stringValue + " \n " + output!

    })

    let task = STPrivilegedTask()
    task.setLaunchPath("/bin/sh")
    task.setArguments(["-c", cmd]);
    task.launch()
    task.waitUntilExit()
    task.outputFileHandle().waitForDataInBackgroundAndNotify()

命令本身是这样的:

/Users/alexandrius/Library/Developer/Xcode/DerivedData/Recover-fczfhpkdplwbujelgmwhirjcesxk/Build/Products/Debug/Recover.app/Contents/Resources/foremost -i /dev/disk2 -o /Users/alexandrius/RECOVER/req -v

*最重要的是文件恢复软件,我正在尝试为它做gui

使用或不使用waitUntilExit方法,结果相同。

0 个答案:

没有答案