一時停止モードに入る前に、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サービスへの依存関係を追加してみました。しかし、これは問題を解決しません。
どんなアイデアがありますか?