Mac OS X:如何在无头机器上运行GUI应用程序

如果没有直接login到计算机,有没有办法像iTunes一样运行GUI应用程序? 因此,我希望能够启动程序,然后注销,或者(最好)在没有用户login到控制台本身时直接从SSH会话运行GUI程序。

(请注意,我不是特别寻找音乐播放器,而是运行GUI程序的一般方法。)

您需要设置VNC服务器并使用客户端连接或购买Apple Remote Desktop 。

这不适用于GUI应用程序。 有一些命令行应用程序将播放音乐等,但不是iTunes。

如果你的机器是无头的,你可以通过VNC或Screen Sharing来login,那么你可以使用open /Applications/iTunes.app从当前用户界面的ssh启动应用程序,而不需要login到GUI 。 但是,您需要正确的权限。

您可以将setatakahashi的答案与OS X的快速用户切换结合起来,因为您提到您准备先login到您想要控制的机器。

login到您要控制的机器。 启动一个像OSXVNC这样的VNC服务器,并将端口设置为5902或者您select的东西不是所有Leopard Mac中包含的VNC服务器默认使用的5900。 (可以由任何pipe理员用户启用:共享pref pane => Screen Sharing =>允许VNC客户端连接。)设置密码。

启用快速用户切换(Accounts pref pane => Login options),然后从菜单栏的FUS图标中select“login窗口”。 计算机将显示Mac OS X的login窗口,并允许其他人正常login和注销,而不中断会话。 (如果机器的首选项设置为显示空的名称和密码字段,那么您的活动隐藏会话可能会被忽略,直到有人login并单击FUS图标。)您的控制台会话保持活动状态,您的VNC服务器也保持活动状态。 您现在可以使用指向远程计算机上正确端口的常规VNC客户端来控制该会话。 JollysFastVNC是一个很好的,快速的select,如果你的控制器也是一台Mac。

有很多安全考虑因素,首先强烈build议使用SSH隧道。 远程计算机上的每个帐户都需要一个密码来阻止用户切换,用户可以通过closures,hibernate等方式来终止会话。依赖无线networking可能会导致连接中断,具体取决于设置方式。 其他的东西可能超出了这个问题的范围。 🙂

计算机是否真正无人运行(如WindowServer从未启动 – 通常是Xserves),还是仅仅是一台没有用户login的计算机?

最简洁的答案是不。 Mac OS X 10.5将特别禁用打开和运行在loginwindow之上的应用程序。 (当安装程序咳嗽时,这是一个相当烦人的安全漏洞,闪烁的咳嗽会在loginwindow上打开一个Finder窗口,让任何人都可以通过root访问)

当然:

$ ssh -X myuser@mypc $ run_something 

我不知道这是否适用于OS X,因为我是Linux用户,但试试看。 另外,如果你打算在LAN(快速连接)之外进行这个操作,可以试试NoMachine 。

恐怕这个问题会被closures,因为它不是真正的系统pipe理相关的…让我们希望不是。

哦,我确定Mac上有好几个VNC应用程序,所以这是另一个select。

另外,如果你有一个dynamic的IP,需要通过互联网访问DynDNS 。

您可以使用open命令行命令打开应用程序。

打开/Applications/iTunes.app

你可能也想看看Automater或AppleScript来做这些动作。