だから私はアプリケーションの使用量を監視するスクリプトを作成しています。 1分ごとにcronjobを実行して、どのウィンドウに焦点が合っているかを確認し、カウンタを増やします。
残りのコードは重要ではありません。これが重要な部分です。
focused=$(xdotool getwindowfocus)
pid=$(xdotool getwindowpid $focused 2>/dev/null)
[ "$pid" ] &&
pname="$(cat /proc/$pid/comm)" ||
pname="idling"
スクリプトをテストしましたがdmenu
、端末またはi3blocks
。pname
しかし、crontabで実行すると、echo $pname
毎回結果が生成されます。idling
root以外のユーザーとしてcrontabを実行していることを確認しました。
編集:理想的には、すべてのcronjobをたとえば個人用crontabに保存したいと思います/etc/crontab
。
答え1
DISPLAY 環境変数をまったく言及していないようです。 xdotoolを使用するとX11が使用されるため、グラフィカルセッションの端末で実行するときは、DISPLAY変数はDISPLAY変数と一致する必要があります。
echo $DISPLAY
編集:答えにQuasimodoのコメントを追加します。
スクリプトで試してくださいexport DISPLAY=:0
。