バッテリーが特定のしきい値を下回るタイミングを確認し、バッテリーの危険通知を送信するためにcronジョブを使用しようとしています。ただし、cronジョブが1分ごとにスクリプトを実行し、スクリプトに私に通知を送信させると機能しません。
スクリプトの権限の問題ではないか、cronジョブが実行されていない原因ではないかどうかを確認するために、スクリプトからファイルを生成するようにし、動作しました。これはcrontabエントリです:
* * * * * /home/aravk/test.sh
そして簡単にするためにtest.sh
、
#!/bin/sh
/usr/bin/dunstify hi
ただし、通知は表示されません。スクリプトを手動で実行すると、スクリプトが機能します。また、crontabエントリを次のように変更して環境変数を設定してみましたDISPLAY
が、まだ機能しません。 cronジョブで実行されたスクリプトから通知を送信するには?関連している場合は、Arch Linuxを使用しています。:0
* * * * * export DISPLAY=:0 && /home/aravk/test.sh
答え1
これを私のcrontabに追加し、すべての通知が機能します(現在使用中ラインそして通知が送信されました。):
DISPLAY=":0.0"
XAUTHORITY="/home/me/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
答え2
crontabジョブには、一部の環境変数へのアクセス権を付与する必要があります。 Kali Linuxでこの問題を解決したので、ターミナルを開いてEnterを入力すると、export
変数情報を含むメッセージが表示されます。
declare -x DISPLAY=":1"
存在する行(値は1ではなく0にすることができます)に移動してそれをコピーしてDISPLAY=":1"
crontab行に貼り付け、次に存在する行に移動してこのdeclare -x XAUTHORITY="/run/user/1000/gdm/Xauthority"
セクションをコピーしてXAUTHORITY="/run/user/1000/gdm/Xauthority"
crontab行に貼り付けます。
あなたのcrontabは次のとおりです。
* * * * * DISPLAY=':1' XAUTHORITY='/run/user/1000/gdm/Xauthority' your_command
答え3
root
私の場合、ユーザーを使用することは問題でしたnotify-send
。私はこれがsudo notify-send
端末で動作せず(つまり、現在のユーザー)だけで動作することがわかったときにnotify-send
これに気づきました。したがって、私が/etc/crontab
使用している一般的なroot
cronスクリプトを編集するのではなく、完全なmyusername
答えを確認してください。ここ。