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