3

スクリーンセーバーが現在実行されている場合に備えて、別のルートを取る必要がある bash で書かれたスクリプトがあります。これは、Xorg と KDE を備えた Linux です。スクリプトは cron から呼び出され、DISPLAY=:0 に接続します。

スクリーンセーバーの状態を確認するヒント/アイデアはありますか?

4

3 に答える 3

7

実行しているのが 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 スクリーン サーバーが実行されているかどうかを確認できます。

于 2011-01-01T12:26:37.153 に答える
3

どうやらスクリーンセーバーを実行しているとき、スクリーンセーバーのバイナリとは別に、次のプロセスも実行されています。

/usr/lib/kde4/libexec/kscreenlocker

そのため、簡単に実行しps uw -C kscreenlockerて結果を確認できます。

于 2010-12-04T11:31:36.557 に答える
0

Gnome 40では使用できます

dbus-send --session --print-reply=literal --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.GetActive

このようなものが印刷されます

   boolean false
于 2022-02-09T14:31:48.830 に答える