クローンジョブから通知を送信できません。

クローンジョブから通知を送信できません。

バッテリーが特定のしきい値を下回るタイミングを確認し、バッテリーの危険通知を送信するために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使用している一般的なrootcronスクリプトを編集するのではなく、完全なmyusername答えを確認してください。ここ

関連情報