私はFedoraベースのディストリビューションであるNobara(Wayland)でKDE Plasmaを実行しています。私はWaylandとNobara / Fedoraに初めてアクセスし、systemdの経験が非常に限られています。
タスクの結果に応じて、成功、警告、またはエラーデスクトップ通知を送信するbashスクリプトがあります。
- sudoではなく手動でスクリプトを実行すると、デスクトップ通知が表示されます。
- sudo 以外の端末で通知コマンドを実行すると、デスクトップ通知が受信されます。
- / etc / systemd / systemサービスを設定すると、デスクトップ通知を受け取らず、Journalctlにエラーが表示されます(そうしないと、スクリプトは正常に実行されます)。
X11 $ DISPLAYなしではD-Busを自動的に起動できません。
スクリプト通知の例:
notify-send -a 'Successful!' -u low -i vcs-normal
システムサービス:
[Unit]
Description=Test Script
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
Nice=10
IOSchedulingClass=2
IOSchedulingPriority=7
ExecStart=/home/username/.local/bin/test.sh
User=username
Group=users
私の検索によると、rootとして実行されているsystemdサービスは、通知を発行するためにユーザーのデスクトップにアクセスできません。私周りの試みを見ました。つまり、サービスファイルに追加します。
[Service]
User=username
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%U/bus
私の場合、ログのエラーは停止しましたが、デスクトップ通知は提供されませんでした。
私はsystemdサービスをユーザーとして実行でき、systemd --user start test
サービスファイルを配置すると通知が機能する~/.config/systemd/user
ことを知っています(私はこれを達成しました)。しかし、この場合は、このスクリプトをrootとして実行したいと思います。
ありがとうございます:)