检测 OSX 上图形服务器的存在?

检测 OSX 上图形服务器的存在?

我需要知道在 OSX 上运行的程序是否处于图形环境中?

我们是否通过仅控制台管道通过 ssh 运行?

在大多数 UNIX 上,我会在环境变量中测试 DISPLAY,但是如何在 OSX 上测试它?

答案1

据我了解,loginwindow如果 OS X 未以 GUI 模式启动(例如,当您以单用户模式启动或这是您通过 SSH 连接到的服务器时),则该过程不会运行。

因此,我认为如果 greploginwindow返回空,则说明机器不处于 GUI 模式,例如:

ps auxww | grep "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow" | grep the_logged_in_username | grep -v "grep" | awk '{print $2}'

loginwindow如果进程启动了,则返回 PID,如果进程未启动,则不返回任何内容。

请注意,我还没有测试过,这只是一个想法,我不确定它是否有效......

相关内容