如何确定当前流程是否打开了UI

How can I determine whether the current process has a UI open?

本文关键字:是否 UI 何确定 程是否      更新时间:2023-10-16

我正在编写一些库代码,这些代码将以管理员/root身份重新运行当前进程。问题是(至少对于linux),如果调用代码是命令行应用程序,最好的方法是调用sudo,而如果是gui应用程序,gksudo是合适的。不过,为了完整起见,其他操作系统的解决方案(或指向解决方案的指针)也很受欢迎。

此外,这很有用,因此对于GUI应用程序,我可以关闭printf语句。

如果设置了环境变量DISPLAY,我会运行gksu(do)。应用程序是否有GUI,是否有X服务器在运行,并且我们可以使用它,这其实并不重要,为什么不应该呢?

不允许您确定是否应该禁用stdout输出。但是,stderr输出通常在.xsession错误中捕获,即使没有连接任何终端,因此您可能根本不想禁用该输出。