Há um tempo atrás, perguntei como parar um music player enquanto a tela estava bloqueada. A resposta foi usar o actkbd, que funciona como um encanto. Agora eu queria adicionar o actkbd como um serviço ao systemd para iniciá-lo automaticamente durante a inicialização. Então, como você pode ver, o serviço foi iniciado corretamente e também aparece no htop. Alguma saída abaixo:
[root@hostname init.d]# systemctl start actkbd.service
[root@hostname init.d]# systemctl status actkbd.service
actkbd.service - Actkbd: Daemon for X-independent shortcuts
Loaded: loaded (/etc/systemd/system/multi-user.target.wants/actkbd.service)
Active: active (running) since Tue, 10 Apr 2012 17:50:36 +0200; 2s ago
Process: 23526 ExecStart=/usr/local/sbin/actkbd -d /dev/input/event3 -D (code=exited, status=0/SUCCESS)
Main PID: 23527 (actkbd)
CGroup: name=systemd:/system/actkbd.service
└ 23527 /usr/local/sbin/actkbd -d /dev/input/event3 -D
[root@hostname init.d]# systemctl stop actkbd.service
[root@hostname init.d]# ps -C actkbd
PID TTY TIME CMD
Eu tenho o seguinte actkbd.service
arquivo em/etc/systemd/system/multi-user.target.wants/
[Unit]
Description=Actkbd: Daemon for X-independent shortcuts
[Service]
Type=forking
ExecStart=/usr/local/sbin/actkbd -d /dev/input/event3 -D
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -15 $MAINPID
Restart=always
User=root
Portanto, o problema é que, após iniciar o serviço com systemctl, nada acontece se eu pressionar meu atalho usual para pausar o Rhythmbox. Se eu simplesmente executar o comando /usr/local/sbin/actkbd -d /dev/input/event3 -D
através do terminal raiz, tudo funciona bem. Porquê isso?
Desculpe se é algo óbvio, sou novo no ramo de sistemas, mas não consegui encontrar nada que me ajudasse.
Felicidades.
EDIT: Isso ainda não está funcionando. Se alguém tiver algum tempo, eu apreciaria se alguém pudesse tentar reproduzi-lo. Se isso for possível, arquivarei um relatório de erro.
actkbd
comsystemd
, devido à falta de tempo, mas eu suspeito que o problema tem algo a ver com oactkbd
que está sendo iniciado antes que o sistema de entrada é totalmente inicializado -actkbd
funciona bem quando começou como um LSB serviço no meu laptop de desenvolvimento. Você deve certificar-se de que ele seja iniciado após o lançamento doevdev
módulo e que seu teclado sempre tenha o mesmoeventX
nó do dispositivo.