使用Swift通过ssh向Raspberry Pi发送命令

时间:2015-04-06 17:07:31

标签: xcode swift ssh raspberry-pi

我在我的pi上运行OSMC,晚上我喜欢在不关闭整个pi的情况下关闭HDMI。现在我通过终端或通过我创建的一个小型Automator工作流程来做到这一点。最近我想将其纳入状态栏应用程序。我遇到的问题是弄清楚如何使用swift ssh进入我的pi,然后,一旦我进入它,向pi发送命令。这就是我现在所拥有的,这是行不通的:

@IBAction func OSMCClicked(sender: NSMenuItem) {
    let task = NSTask()
    task.launchPath = "/usr/bin/"
    if (sender.state == NSOnState) {
        sender.state = NSOffState
        task.arguments = ["mosh osmc@172.19.32.246", "osmc stop", "exit"]
        //task.arguments = ["mosh osmc@172.19.32.246"]
        //task.arguments = ["OSMC stop"]
        //task.arguments = ["exit"]
    }
    else {
        sender.state = NSOnState
        task.arguments = ["mosh osmc@172.19.32.246", "osmc start", "exit"]
        //task.arguments = ["mosh osmc@172.19.32.246"]
        //task.arguments = ["osmc start"]
        //task.arguments = ["exit"]
    }
    task.launch()
}

1 个答案:

答案 0 :(得分:0)

所以我对ssh或NSTask不太了解。结果发布路径可以是/usr/bin/ssh,然后参数将是["osmc@172.19.32.246", "osmc start", "exit"]。除了osmc别名在我的.bashrc文件中,当它不是交互式时它不起作用,所以我最后将其替换为实际命令,并使用-t标志而不是exit。