バックグラウンドで実行され、ユーザーがログアウトしたことを検出するスクリプトを作成したいと思います。dbus-monitorでドキュメントを見つけるのに問題があります。私ができる最善のことは、、、の急増を確認することですがEndSessionQuery
、EndSession
これらEndSessionResponse
はすべてブール値が付属しているため、完全に信頼することはできません(おそらく、プログラムはユーザーにログアウトを望まないと言っていますか?)そしてその上に、開いているプログラムがない場合はどうなりますか?これは信頼性が低すぎます。
私が欲しいのは、ユーザーがログアウトしているときに常に発生する信号をリッスンすることです。誰かがその信号を提供できますか?現在、私はこのコマンドを実行しています:
dbus-monitor --session \
"type='signal',interface='org.gnome.ScreenSaver',member='ActiveChanged'" | \
myprog
ScreenSaverイベントをキャッチします。しかし、私もログアウトをキャッチしたいと思います。私が望むのは次のようなものです。
dbus-monitor --session \
"type='signal',interface='org.gnome.Session',member='LogoutSuccess'" \
"type='signal',interface='org.gnome.ScreenSaver',member='ActiveChanged'" | \
myprog