systemdを使用して停止中にClementineの再生を停止する方法

systemdを使用して停止中にClementineの再生を停止する方法

一時停止モードに入る前に、Clementineの再生を停止するためにDBusを使用しようとしています。これは私の現在のサービスファイルです。

[Unit]
Description=Stop Clementine playback before suspend
Requires=dbus.service
Before=sleep.target
Before=dbus.service

[Service]
User=jo
Type=oneshot
ExecStart=-/bin/sh -c 'qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Stop'

[Install]
WantedBy=sleep.target

今動作します。つまり、再生が停止しました。しかし、systemdが実際に一時停止モードに入るには長い時間がかかります。 Journalctlのログを見ると、次のようになります。

Jun 05 23:43:53 localhost.localdomain systemd[1]: Starting Suspend...
Jun 05 23:44:18 localhost.localdomain systemd-sleep[7052]: Error: org.freedesktop.DBus.Error.NoReply
Jun 05 23:44:18 localhost.localdomain systemd-sleep[7052]: Did not receive a reply. Possible causes include: the remote application did not send a reply, the 
Jun 05 23:44:18 localhost.localdomain systemd-sleep[7052]: Suspending system...

私の最初の考えは、DBusシステムまたはClementine自体が応答する時間になる前に中断され、中断を引き起こすということでした。そこで、上記のサービスファイルにdbusサービスへの依存関係を追加してみました。しかし、これは問題を解決しません。

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

ベストアンサー1

おすすめ記事