Xdotool 코드가 포함된 쉘 스크립트를 실행해야 합니다 /home/z/Desktop/tempo/run.sh
. 나는 많은 것을 시도했지만 DISPLAY=:0
결코 작동하지 않습니다.
다음 코드를 각각 시도했지만 작동하지 않습니다.
* * * * * export DISPLAY=:0 cd /home/z/Desktop/tempo; ./run.sh
* * * * * export DISPLAY=:0; cd /home/z/Desktop/tempo; ./run.sh
* * * * * export DISPLAY=:0 && cd /home/z/Desktop/tempo; ./run.sh
* * * * * DISPLAY=:0 cd /home/z/Desktop/tempo; ./run.sh
* * * * * DISPLAY=:0; cd /home/z/Desktop/tempo; ./run.sh
* * * * * DISPLAY=:0 && cd /home/z/Desktop/tempo; ./run.sh
직접 실행하면 작동하지 않습니다.
* * * * * export DISPLAY=:0 xdotool mousemove 20 20
* * * * * export DISPLAY=:0; xdotool mousemove 20 20
* * * * * export DISPLAY=:0 && xdotool mousemove 20 20
* * * * * DISPLAY=:0 xdotool mousemove 20 20
* * * * * DISPLAY=:0; xdotool mousemove 20 20
* * * * * DISPLAY=:0 && xdotool mousemove 20 20
위의 모든 코드 줄 위로 마우스가 움직이는 것을 항상 볼 수는 없습니다.
또한 잘못된 웹 사이트 URI 요청을 만들기 위해 Xdotool 코드를 테스트하고 로그를 살펴보았습니다. 불행히도 로그는 여전히 비어 있습니다.
답변1
* * * * * DISPLAY=:0 xdotool mousemove 20 20
최소한 해당 모니터의 X 세션이 있는 사용자와 동일한 사용자의 crontab에 있는 한 작동해야 합니다.
다른 사용자가 마우스 이동을 수행하려면 해당 사용자에게 모니터에 대한 액세스 권한을 부여해야 합니다. 이는 그에게 표시할 MIT Magick 쿠키를 제공하고 그가 자신의 X 인증 저장소에 이를 설치하도록 하여 수행할 수 있습니다( xauth
). 또는 다음을 사용하여 수행할 수 있습니다.
xhost +si:localuser:the-user
또는 다음과 같이 자신의 X 인증 저장소에 대한 액세스 권한을 부여하여 수행할 수 있습니다.
setfacl -m u:the-user:r ~/.Xauthority
crontab 줄을 다음과 같이 변경합니다.
* * * * * DISPLAY=:0 XAUTHORITY=~me/.Xauthority xdotool...
다른 사용자가 루트인 경우 이 setfacl
단계는 필요하지 않지만 xdotool을 실행할 root
이유가 없습니다. 자신의 사용자로 실행할 수 있습니다.
답변2
cron
jobs에는 X 모니터는커녕 tty도 없습니다.
GUI 재생 입력을 테스트하려면(또는 합성 로드를 생성하려면) 찾아보세요. cron을 사용하려고 (남용)하지 마십시오.