我在pi上运行OSMC,晚上我喜欢在不关闭整个pi的情况下在晚上关闭HDMI。现在,我正在通过终端或我创建的一些Automator工作流来执行此操作。最近,我想将其合并到状态栏应用程序中。我遇到的问题是弄清楚如何使用swift将ssh放入pi,然后在将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 [email protected]", "osmc stop", "exit"]
//task.arguments = ["mosh [email protected]"]
//task.arguments = ["OSMC stop"]
//task.arguments = ["exit"]
}
else {
sender.state = NSOnState
task.arguments = ["mosh [email protected]", "osmc start", "exit"]
//task.arguments = ["mosh [email protected]"]
//task.arguments = ["osmc start"]
//task.arguments = ["exit"]
}
task.launch()
}
最佳答案
所以我只是对ssh或NSTask不太了解。事实证明,启动路径可以是/usr/bin/ssh
,然后参数是["[email protected]", "osmc start", "exit"]
。除了osmc
别名位于我的.bashrc文件中,该文件在非交互式时不起作用,因此我最终将其替换为实际命令,并使用-t标志而不是exit。