web-dev-qa-db-fra.com

Systemd ne désactive pas le verrouillage numérique

JE DÉTESTE le fait que mon voyant numlock reste allumé après l'arrêt!

J'ai préparé un fichier unitaire comme celui-ci

[Unit]
Description=Turn Num Lock off before shutdown
RequiresMountsFor=/ #dunno if needed, just in case

[Service]
ExecStop=/usr/local/sbin/numlock.sh
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Et je peux dire avec certitude que cela fonctionne car à l'intérieur du script, il n'y a pas seulement la commande numlock mais aussi un "touch/home/user/TEST" qui apparaît lorsque j'allume le système

les commandes que j'ai essayées d'éteindre la lumière sont numlockx, xset et xdotool: toutes les trois fonctionnent parfaitement lorsque le système est allumé: un indice sur ce qui ne va pas?

1
Lupccs

Comme suggéré, la commande dans le script numlock.sh était erronée, probablement parce qu'avant l'arrêt, vous ne pouvez pas compter sur une commande basée sur X

Un script comme celui-ci fonctionne parfaitement

#!/bin/bash

for tty in /dev/tty?; do /usr/bin/setleds -D +num < "$tty"; done

En fait, j'ai changé le fichier UNIT pour simplifier, il n'aura plus besoin de script maintenant.

[Unit]
Description=Turn off numlock at shutdown

[Service]
ExecStart=/bin/bash -c "for tty in /dev/tty?; do /usr/bin/setleds -D +num < "$tty"; done"

[Install]
WantedBy=multi-user.target
0
Lupccs