2012-06-15 2 views
1

crontab을 사용하여 X-Programm (예 : gedit 또는 Firefox)을 시작하려고합니다. 저는 꽤 오래 검색을했는데 포럼에 도움이 가득 찼습니다. 불행히도 저에게 도움이되는 것은 없었습니다.Debian 6.0.4에서/etc/crontab을 사용하여 X 프로그램 시작

저는 Crontab에서 X-Programm을 시작하려고합니다. 이 테스트를 위해 나는 다음과 같은 짓을 내 "을/etc/crontab을"의

항목 (내 사용자 계정은 내가 로그온하고, 부인입니다) :

* * * * * mrs /bin/bash /tmp/test.sh 

고양이/tmp를/테스트. SH :

#!/bin/bash 
DISPLAY=":0.0" 
gedit 1> /tmp/out 2>/tmp/err 

고양이/tmp를/ERR가 :

No protocol specified 
(gedit:3456): Gtk-WARNING **: cannot open display: :0.0 

/tmp를/아웃 비어 있습니다!

+0

내보내기 DISPLAY = ": 0.0"및 내보내기 echo DISPLAY = ": 0.0"을 시도했지만 작동하지 않았습니다! –

답변

1

나는 해결책을 찾았습니다! 문제는 내가 XAUTHORITY가 없었기 때문입니다. 그래서 유효한 XAUTHENTICATION을 얻어야했습니다. xhost와 xauth를 많이 사용해 보았지만 도움이되지 않았습니다. 지금은 루트 crontab 명령에 대한 액세스 권한이있는 경우 다른 간단한 방법 느릅 나무가, 그놈/gdm3 작동 발견

export DISPLAY=":0.0" 
[ -z $USER ] && USER=$(who | awk '{ print $1 }' | sort | uniq >/tmp/test) 
for I in /var/run/gdm3/*; do 
    AUTHUSER="`echo $I | awk -F '-' '{ print $3 }'`" 
    for J in $USER; do 
     [ "${AUTHUSER}" = "${J}" ] || continue 
     USER="$J" 
     export XAUTHORITY="${I}/database" && break 
    done 
done 
sudo -u ${USER} /Pfad/zum/xProgramm 

이 변수 $ USER kann의 사람 vorher의 belegen 다이를 andernfalls wird SIE MIT mindestens einem bereits eingeloggten 사용자 beschrieben. 모든 사용자가 시스템을 사용 중입니다.

자세히 알아보기 및 문제 해결

관련 문제