Execute o comando automaticamente como root após o login

1

Estou usando o evrouter para simular pressionamentos de tecla dos meus botões extras. Ele funciona muito bem, mas eu preciso executar o comando com o sudo para que ele funcione, então não posso usar meu DE para lidar com o início automático.

Eu considerei o init.d mas pelo que ouvi isso funciona apenas para diferentes estágios de boot, e eu preciso que isso seja executado como root após login.

$ cat .evrouterrc 
"Logitech G500" "/dev/input/event4" any key/277 "XKey/0"
"Logitech G500" "/dev/input/event4" any key/280 "XKey/9"
"Logitech G500" "/dev/input/event4" any key/281 "XKey/8"
$ sudo evrouter /dev/input/event4

Editar: Tudo bem, parece que posso usar a opção session-setup-script do lightdm.conf para executar um script como root. O script que tenho está abaixo, mas como esperado quando executado como root, o id -u não é mais igual a 1000 e a instrução if nunca é executada. Existe um argumento ou variável que eu possa usar para obter o nome de usuário ou id?

    
por J V 03.11.2012 / 17:23

2 respostas

0

Após a inicialização do seu computador, o Linux executa o que estiver no arquivo crontab do seu sistema. Cron é um programa que programa comandos, programas ou scripts para rodar em horários muito específicos do dia. Cada usuário tem um crontab, mas nessa situação o crontab do sistema é apropriado para esse trabalho.

Você pode configurar o cron para executar comandos ou programas quando o sistema é inicializado. Então, acho que é isso que você quer dizer.

Para editá-lo adequadamente, você irá querer abrir o arquivo crontab do seu sistema, executando o comando sudo vim /etc/crontab Sinta-se livre para substituir '' vim '' pelo seu editor de texto cli favorito.

Adicione a linha (substituindo as coisas apropriadas exatamente com o que você precisa, como comandos, etc.) abaixo de todas as outras @reboot evrouter Nota: A melhor idéia pode ser criar um script e colocar os comandos nele e executar o script usando crontab. É realmente a sua escolha.

Dependendo da sua distro, você pode ou não ter que colocar quem deseja que o comando seja executado como depois de @reboot Na maioria das vezes, o arquivo crontab terá alguns comentários no topo do arquivo para instruí-lo. É claro que olhar as outras entradas neste arquivo provavelmente será o mais útil para você.

    
por 03.11.2012 / 18:06
0

Usando o valor lightdm.conf do session-setup-script , consegui executar o comando como root conforme o esperado.

session-setup-script=/opt/hacks/lightdm-startup

Enquanto isso, em outra pasta:

#!/bin/bash
if [ "$USER" = "j" ]
then
evrouter /dev/input/event4
fi

Ainda não sei por que == não funcionou na instrução if e = fez ... Bash é errático às vezes.

    
por 03.11.2012 / 18:53

Tags