xdotool は crontab で実行したときに別の出力を返します。

xdotool は crontab で実行したときに別の出力を返します。

だから私はアプリケーションの使用量を監視するスクリプトを作成しています。 1分ごとにcronjobを実行して、どのウィンドウに焦点が合っているかを確認し、カウンタを増やします。

残りのコードは重要ではありません。これが重要な部分です。

focused=$(xdotool getwindowfocus)
pid=$(xdotool getwindowpid $focused 2>/dev/null)
[ "$pid" ] &&
    pname="$(cat /proc/$pid/comm)" ||
    pname="idling"

スクリプトをテストしましたがdmenu、端末またはi3blockspnameしかし、crontabで実行すると、echo $pname毎回結果が生成されます。idling

root以外のユーザーとしてcrontabを実行していることを確認しました。

編集:理想的には、すべてのcronjobをたとえば個人用crontabに保存したいと思います/etc/crontab

ベストアンサー1

DISPLAY 環境変数をまったく言及していないようです。 xdotoolを使用するとX11が使用されるため、グラフィカルセッションの端末で実行するときは、DISPLAY変数はDISPLAY変数と一致する必要があります。

echo $DISPLAY

編集:答えにQuasimodoのコメントを追加します。

スクリプトで試してくださいexport DISPLAY=:0

おすすめ記事