我有一个用bash编写的脚本,如果屏幕保护程序当前正在运行,我需要采取其他方法。这是带有Xorg和KDE的Linux。脚本是从cron调用的,它连接到DISPLAY =:0。

任何提示/想法如何检查屏幕保护程序的状态?

最佳答案

如果您正在运行的是KDE4,则可以使用dbus来检查屏幕保护程序是否正在运行:

$ qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive

要么
$ qdbus org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive

这也适用于gnome,但因不遵循FreeDesktop标准而闻名,因此您必须使用:
$ qdbus org.gnome.ScreenSaver /ScreenSaver org.gnome.ScreenSaver.GetActive

最后但并非最不重要的一点是,您可以使用XScreenSaverQueryInfo()检查标准X屏幕服务器是否正在运行,并检查状态字段。

10-05 22:27