Как проверить, работает ли заставка? - PullRequest
3 голосов
/ 01 декабря 2010

У меня есть скрипт, написанный на bash, который мне нужен по другому маршруту, если в данный момент работает заставка.Это Linux с Xorg и KDE.Скрипт вызывается из cron и подключается к DISPLAY =: 0.

Любой намек / идея как проверить состояние заставки?

Ответы [ 2 ]

6 голосов
/ 01 января 2011

Если вы используете 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

И последнее, но не менее важное: вы можете проверить, работает ли стандартный сервер X-экрана, с помощью XScreenSaverQueryInfo () и проверить поле состояния.

3 голосов
/ 04 декабря 2010

Очевидно, что при запуске заставки, кроме двоичного файла заставки, также выполняется этот процесс:

/usr/lib/kde4/libexec/kscreenlocker

Итак, я могу просто сделать ps uw -C kscreenlocker и проверить результаты.

...