2013-08-09 1 views

답변

0

추적 실행중인 스크린 세이버를 실행하고 killall -9 iceweasel을 실행하거나 사용자 작업에 시간을 할애 할 수 있습니다. 마지막 변형의 실현 아래 :에 dialog, gdialog 또는 kdialog이 분배에서 따라와

#!/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 교체 할 수있다.

실행중인 화면 보호기를 확인할 수도 있습니다. 그것은 단지 개념입니다. 나는 내 책상 위에 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.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive 

주에

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

교체 시도 할 수 있습니다, 그것은 (실행) KDE에서 작업 할 수 있습니다 (1).

ps -C kscreenlocker 명령의 분석이 더 어렵지만 더 안정적입니다.


(1) 내가이 사용자가 무엇을 요구라고 생각하지 않습니다 qdbus org.gnome.ScreenSaver /ScreenSaver org.gnome.ScreenSaver.GetActive

+0

을 통해 그놈 나를 위해 작동합니다. 그는 일정 기간 동안 활동이 없을 때 프로그램을 닫기를 원합니다. 따라서 프로그램의 활동 시간을 확인해야합니다. – Claudio

+0

감사합니다. 스크립트는 작동하지 않습니다. – user2409552

+0

2 @ Claudio. 활동 시간의 양을 확인하는 것은 쉬운 일이 아닙니다. 나는 그것이 응용 프로그램 내부에서 확인 시간이 필요하다고 생각해. 나는 다른 길을 제안했다 : 시간 제한된 사용자 세션을 준다. –

관련 문제