xcode - 使用Swift通过ssh向树莓派发送命令

标签 xcode swift ssh raspberry-pi

我在我的 pi 上运行 OSMC,晚上我喜欢在晚上关闭 HDMI 而不会关闭整个 pi。现在我正在通过终端或通过我创建的一个小的 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()
}

最佳答案

所以我只是不太了解 ssh 或 NSTask。原来启动路径可以是 /usr/bin/ssh,然后参数是 ["osmc@172.19.32.246", "osmc start", "exit"]。除了 osmc 别名在我的 .bashrc 文件中,当它不是交互式时它不起作用,所以我最终用它代替实际命令,并使用 -t 标志而不是 exit .

关于xcode - 使用Swift通过ssh向树莓派发送命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29475894/

相关文章:

ios - TableView NSInternalInconsistencyException

iphone - 代码错误 : The selected run destination is not valid for this action

ios - 为什么我在使用 prepareForSegue 传递值时出错?

tomcat - 如何使用ssh隧道远程连接到tomcat上的jmx而不破坏ehcache

ios - Xcode,使用自定义构建配置时链接框架不起作用

iphone - iPhone/iPad 上的 PDF 超链接

ios - Swift Cocoa Touch 自定义单元格为 IBOutlets 返回 nil

swift - SceneKit的实例属性 "autoenablesDefaultLighting"不起作用

linux - bash 不会在远程 ssh 命令上加载 Node

ssh - 从服务器获取指纹