como parar a reprodução Clementine em suspender usando systemd

3

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?

    
por Meta 07.06.2013 / 01:22

0 respostas