システムサービスが機能しない

システムサービスが機能しない

60分ごとに通知を送信するサービスを作成しようとしています。このためにbashスクリプトを作成しました。 60分ごとに実行されますが、不明な理由で動作しないものをhourly.sh使用して実行できるため、動作することを知っています。働かないでください。私は次のように始めました。これは私のコードです。./hourly.shtimersystemctl start hourlynotif.timer

hourlynotif.service:

[Unit]
Description=Hourly notifier with notify-send

[Service]
Type=oneshot
ExecStart=/etc/systemd/system/hourly.sh

[Install]
WantedBy=multi-user.target

注:[Install]タイマーなしでサービスとして実行しようとする行を追加しました(タイマーとして実行している場合は[Install]タグが必要ないため)。単にテストするためのものでしたが、何も変わりませんでした。

そして hourlynotif.timer

[Unit]
Description=Hourly notifier with notify-send

[Timer]
#OnCalendar=hourly
OnActiveSec=1

[Install]
WantedBy=timers.target

systemctl list-timers --all私のタイマーは「パス」としてリストされていて、これが出力なので、タイマーが期待どおりに動作していることを知っています。 (テストを開始してから1秒間実行するように編集したため、毎時間ではありません)

NEXT                         LEFT     LAST                         PASSED       UNIT                         ACTIVATES

n/a                          n/a      Thu 2017-08-31 05:21:54 CST  6s ago       hourlynotif.timer            hourlynotif.service

どんなアイデアがありますか?

編集する:Bashスクリプトは、表示されるKDE通知ウィジェットに依存する通知転送に依存します。スクリプトをsudoすると通知は実行されないため、ログインしたユーザーとしてスクリプトを実行する必要があるようです。

答え1

問題は、.bashを使用して実行せずにsystemctl --user start <unit>.bashsystemctl start <unit>を使用しているだけです。スクリプトはユーザー固有のKDEエントリに依存するため、そのスクリプトを実行しても機能しません。sudoこれがサービスのデフォルトモードです。

関連情報