Vor einiger Zeit habe ich gefragt, wie ein Musik-Player angehalten werden soll, während der Bildschirm gesperrt ist. Die Antwort war, actkbd zu verwenden, was wie ein Zauber wirkt. Jetzt wollte ich actkbd als Dienst zu systemd hinzufügen, um es beim Booten automatisch zu starten. Wie Sie sehen, ist der Dienst korrekt gestartet und wird auch in htop angezeigt. Einige Ausgaben unten:
[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
Ich habe die folgende actkbd.serviceDatei 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
Das Problem ist also, dass nach dem Starten des Dienstes mit systemctl nichts passiert, wenn ich meine übliche Tastenkombination zum Anhalten der Rhythmbox drücke. Wenn ich stattdessen einfach den Befehl /usr/local/sbin/actkbd -d /dev/input/event3 -Düber das Root-Terminal ausführe, funktioniert alles einwandfrei. Warum das?
Tut mir leid, wenn es etwas Offensichtliches ist, ich bin neu im Systemgeschäft, aber ich konnte nichts finden, was mir geholfen hat.
Prost.
BEARBEITEN: Dies funktioniert immer noch nicht. Wenn jemand etwas Zeit hat, würde ich es begrüßen, wenn man es versuchen und reproduzieren könnte. Wenn das möglich ist, werde ich einen Fehlerbericht einreichen.
actkbdmitsystemd, wegen des Mangels an Zeit, aber ich vermute , dass das Problem etwas mit dem zu tun hat ,actkbdwird begonnen , bevor das Eingabesystem vollständig initialisiert ist -actkbdfunktioniert gut , wenn als LSB - Dienst auf meiner Entwicklung Laptop gestartet. Sie sollten sicherstellen, dass es nach demevdevStart des Moduls gestartet wird und dass Ihre Tastatur immer den gleicheneventXGeräteknoten hat.