Execute o script sudo na inicialização em 15.04 usando 'systemd'

0

Eu gostaria de executar um script para desligar a luz de fundo do teclado na minha Asus no login ( esta resposta não funcionou). Antes da introdução de systemd no Ubuntu 15.04, eu fiz isso através de /etc/rc.local usando o comando (sleep 10 && echo 0 > /sys/class/leds/asus::kbd_backlight/brightness) . No entanto, em systemd , isso não funciona mais.

Eu tentei seguir as instruções aqui para criar um systemd service . Mas isso não funcionou. Este é o texto que usei:

[Unit] Description=MBWD Keyboard Backlight OFF script

[Service] Type=oneshot ExecStart=/usr/lib/systemd/scripts/keyboard_backlight.sh #RemainAfterExit=yes [Install] WantedBy=multi-user.target

Para chamar este script:

 #!/bin/bash
 echo 0 | sudo tee /sys/class/leds/asus::kbd_backlight/brightness

Eu, então, ativei o serviço, iniciei o serviço e usei o comando systemctl preset para ativar o serviço na inicialização (acho que é isso que acontece).

Depois de tudo isso, o comando systemctl status indica que o serviço está habilitado e quando eu systemctl start o serviço escurece o teclado. E, na reinicialização, na inicialização, pode funcionar, porque o teclado é desativado quando o Ubuntu é inicializado.

NO ENTANTO, assim que chego à minha tela de login e login, a luz do teclado volta a acender. Eu tentei refinar esse problema usando sleep 20 no script e por criando uma unidade systemd.timer . Nem funcionou.

Alguém pode ajudar ???

    
por Rsync 30.08.2015 / 20:44

2 respostas

0

Eu finalmente resolvi esse problema usando rc-local.service e /etc/rc.local em vez de criar um serviço systemd separado. Aqui está o que eu fiz:

  1. No terminal: systemctl enable rc-local.service
  2. Em /etc/rc.local , coloquei o seguinte:

#! / bin / sh -e (dormir 20 & echo 0 > / sys / dispositivos / plataforma / asus-nb-wmi / leds / asus :: kbd_backlight / brilho) sair 0

  1. Tornar /etc/rc.local executável:

chmod sudo a + x /etc/rc.local

  1. Para confirmar, verifique o status de rc-local.service

statusctl status rc-local.service

Ele deve mostrar verde e dizer ativo. Foi isso.

    
por Rsync 30.05.2016 / 03:58
0

Certamente não é a melhor resposta, mas você pode mudar de systemd para upstart instalando o pacote upstart-sysv.

sudo apt-get install upstart-sysv
    
por aklmie 30.08.2015 / 22:55