2016-08-30 4 views
0

와 내가 입력배쉬 스크립트 자체에 잘 실행,하지만 크론

의 crontab -e

로그 파일이 생성

*/1 * * * * /home/sara/Desktop/kioskscripts/reloadpage.sh >> /home/sara/Desktop/kioskscripts/logfile.log 

처럼 내 crontab을 보이는에서/kioskscripts하지만, 빈 채로 남아 있습니다.

reloadpage.sh이

#!/bin/bash 
sleep 5 
/usr/bin/xdotool key F5 

쉬 reloadpage.sh 같은 예상대로

작품을보고 F5를 실행 후 5 초 누르고있는 시뮬레이션합니다.

+0

왜'xdotool'이 표준 출력에 아무 것도 쓰지 않기를 바랍니다. 또는, 더 잘 말했습니다. * 당신이 쓰려고하는 것은 무엇입니까? – rici

+0

reloadpage.sh를 실행하면 오류가 발생하면 로그 파일에 기록 될 것으로 예상됩니다. 그 부분은 스크립트가 제대로 실행되도록하는 것만 큼 중요하지 않습니다. –

+0

reloadpage.sh를 실행하면 오류가 발생하고, 오류는 stdout이 아닌 stderr에 기록됩니다. 그래서 그것을 잡으려면'2 >>'를 사용해야 할 것입니다. (그러나 키 입력 이벤트가 대상 창에 의해 처리되지 않으면'xdotool'이 에러를 발생시키지 않을 것이라고 생각합니다.) – rici

답변

2

cron에 의해 실행되는 프로그램에는 활성 창이 없으므로 --window 옵션을 사용하여 키 입력을 보내려는 창을 명시 적으로 지정해야합니다.

xdotool getactivewindow으로 현재 활성화 된 창의 창 ID를 가져온 다음 xdotool 명령에서 해당 번호를 사용할 수 있습니다. 또는 다양한 옵션과 함께 xdotool search을 사용하여 키 입력을 지정하려는 창을 찾을 수 있습니다. 다양한 검색 옵션에 대해서는 man xdotool을 읽으십시오. (하나의 명령으로이 작업을 수행 할 수 있습니다 : xdotool search --name Foo key F5FOO이라는 이름의 창으로 F5를 보냅니다.)

그러나 표시된 창에서 이벤트를 허용하고 많은 창이 그렇지 않으면 작동합니다.

+0

Chrome은 키 입력을 허용하지만 포커스가있는 경우에만 허용됩니다. 이는 내 용도에 적합합니다. 너 없이는 이걸 발견하지 못했을거야. –

+0

@BrianHotopp : xdotool 명령에'windowraise'를 추가 할 수도 있습니다. 하지만 그것은 사용자 경험에 상당히 혼란 스럽다고 생각합니다 :) – rici