5

私は crontab を使用するのが初めてで、単純な cron ジョブを取得しようとしています。F5 を 1 分ごとに押して、Mozzila Firefox を更新します。F5を押すためにxdotoolを使用しています。スクリプト/usr/local/bin/refresh.shがあります。

#!/bin/bash  
xdotool search --name "Mozilla Firefox" key F5

コマンドラインで実行すると正常に動作します。そして許可:

-rwxr-xr-x. 1 root root 89 15. čec 10.32 refresh.sh

crontabには次のものがあります:

*/1 * * * * cd /usr/local/bin && sh refresh.sh

しかし、cron によって実行されるスクリプトは機能しません。誰が私が間違っているのか教えてもらえますか?

4

6 に答える 6

1

だから私はたくさんのことを試しましたが、何らかの理由でUbuntu 18.04でecho $display返され:1ませんでし:0た。また、機能しているように見える唯一の環境変数セッターは、次を追加することでした:

export DISPLAY=":1"

cronが実行しているスクリプトに直接。

于 2018-12-29T23:23:47.960 に答える
0

なぜだめですか

*/1 * * * * /usr/local/bin/refresh.sh

cd /usr/local/bincronジョブを実行していないため、ここでは必要ありません/usr/local/bin

cd以下のシナリオで必要です

*/1 * * * * cd /usr/local/bin && ls >/var/somelog # wish to execute ls in a particular directory
于 2016-07-15T09:04:47.293 に答える
-1

xdotool コマンドを別のツールでスケジュールしたい場合は、At コマンドを使用して実行できます (チュートリアルを参照)。したがって、機能させるには、環境変数 DISPLAY を定義する必要があります (Kenorb の説明による)。まず、スクリプト ファイルに設定するために、その変数 (echo $DISPLAY) から現在の値を取得しました (エクスポート DISPLAY=:0)。次に、次のように実行できます。

at xx:xx -f your_shell_script_file
于 2021-06-22T13:00:56.723 に答える