Como o título diz, estou tentando parar a reprodução da Clementine usando o DBus antes de entrar no modo de suspensão. Aqui está o meu arquivo de serviço agora:
[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
Agora, isso funciona, ou seja, a reprodução é interrompida. No entanto, o systemd então leva muito tempo para entrar no modo de suspensão. Olhando para os logs no journalctl, vejo:
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...
Meu primeiro pensamento é que o sistema DBus, ou talvez a própria Clementine, seja suspensa antes de ter tempo de responder, causando assim um travamento. É por isso que tentei adicionar uma dependência ao serviço dbus no meu arquivo de serviço acima. No entanto, isso não funciona.
Alguma idéia?