ユーザーが非アクティブなときにiceweaselを閉じたい。以前は「Reset kiosk」拡張機能を使用していましたが、「R-Kiosk」拡張機能とは互換性がありません。Bash経由で非アクティブなイベントを取得する可能性はありますか?
1 に答える
0
トレース実行中のスクリーンセーバーを試して実行するkillall -9 iceweasel
か、ユーザー操作に時間を割くことができます。最後のバリアントの実現の下:
#!/bin/sh
TIMELIMIT=10 #10 seconds for example
MYPROGRAMM=chromium-browser #I use chromium-browser for example
MYPID=-1
$MYPROGRAMM & MYPID=`echo $!`
sleep $TIMELIMIT
kill -9 $MYPID
zenity --info --timeout=5 --text="Session expired" #show message for user
zenity
に置き換えるかdialog
、配布物に依存することに注意してください。gdialog
kdialog
さらに、スクリーンセーバーの実行を確認できます。あくまでもコンセプトです。私のデスクトップには KDE がないので、実験を行うことができます。
#!/bin/sh
MYPROGRAMM=chromium-browser #I use chromium-browser for example
if [ "$(qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive)" $= 'false' ]; then
killall -9 $MYPROGRAMM
exit 0;
fi
交換してみることができます
qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive
その上
qdbus org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive
(実行中の)KDE(1)から動作することに注意してください。
コマンドの結果を解析するのはより困難ですが、より信頼性が高くなりますps -C kscreenlocker
。
(1)それはGnomeで私のために働きますqdbus org.gnome.ScreenSaver /ScreenSaver org.gnome.ScreenSaver.GetActive
于 2013-08-09T06:46:00.910 に答える