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
上記のすべてのコード行の上にマウスが動いていることを常に見ることはできません。
また、間違ったWebサイトURIリクエストを作成するためにXdotoolコードをテストしてログを調べました。残念ながら、ログはまだ空です。
ベストアンサー1
* * * * * DISPLAY=:0 xdotool mousemove 20 20
少なくとも、そのモニターの X セッションを持つユーザーと同じユーザーの crontab にある限り、操作する必要があります。
他のユーザーがマウスを移動するには、そのユーザーにモニターへのアクセス権を付与する必要があります。これは、彼に表示するMIT Magick Cookieを提供し、彼が自分のX認証リポジトリにそれをインストールすることによって行うことができます(xauth
)。または、以下を使用して実行できます。
xhost +si:localuser:the-user
または、次のように独自のX認証ストアへのアクセス権を付与することで実行できます。
setfacl -m u:the-user:r ~/.Xauthority
crontab 行を次のように変更します。
* * * * * DISPLAY=:0 XAUTHORITY=~me/.Xauthority xdotool...
他のユーザーがrootの場合、このsetfacl
ステップは必要ありませんが、xdotoolを実行するroot
理由はありません。自分のユーザーとして実行できます。