Qualche tempo fa ho chiesto come fermare un lettore musicale mentre lo schermo è bloccato. La risposta è stata usare actkbd che funziona come un incantesimo. Ora volevo aggiungere actkbd come servizio a systemd per avviarlo automaticamente all'avvio. Come puoi vedere, il servizio è avviato correttamente e viene visualizzato anche in htop. Alcuni output di seguito:
[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
Ho il seguente actkbd.service
file in/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
Quindi il problema è che dopo aver avviato il servizio con systemctl non succede nulla se premo il mio solito collegamento per mettere in pausa Rhythmbox. Se invece eseguo semplicemente il comando/usr/local/sbin/actkbd -d /dev/input/event3 -D
tramite un terminale root, tutto funziona bene. Perché quel?
Scusate se è qualcosa di ovvio, sono nuovo nel settore dei sistemi ma non sono riuscito a trovare nulla che mi abbia aiutato.
Saluti.
EDIT: questo non funziona ancora. Se qualcuno ha del tempo, lo apprezzerei se si potesse provare a riprodurlo. Se ciò è possibile, presenterò una segnalazione di bug.
actkbd
consystemd
, a causa della mancanza di tempo, ma ho il sospetto che il problema ha a che fare con laactkbd
fase di avvio prima che il sistema di ingresso è completamente inizializzato -actkbd
funziona bene quando è iniziato come un servizio di LSB sul mio portatile di sviluppo. È necessario assicurarsi che venga avviato dopo l'avvio delevdev
modulo e che la tastiera abbia sempre lo stessoeventX
nodo del dispositivo.