
Estou usando o evrouter para simular o pressionamento de teclas dos botões extras do mouse. Funciona muito bem, mas preciso executar o comando com sudo para que funcione, então não posso simplesmente usar meu DE para lidar com a inicialização automática.
Eu considerei init.d, mas pelo que ouvi, isso só funciona para diferentes estágios de inicialização e preciso que ele seja executado como rootdepoisConecte-se.
$ 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 session-setup-script
a opção lightdm.conf para executar um script como root. O script que tenho está abaixo, mas como esperado, quando executado como root, id -u
não é mais igual a 1000 e a instrução if nunca é executada. Existe um argumento ou variável que posso usar para obter o nome ou ID do usuário?
Responder1
Após a inicialização do computador, o Linux executa tudo o que está no arquivo crontab do seu sistema. Cron é um programa que agenda comandos, programas ou scripts para serem executados em horários muito específicos do dia. Cada usuário possui um crontab, mas nesta situação o crontab do sistema é apropriado para tal trabalho.
Você pode configurar o cron para executar comandos ou programas quando o sistema for inicializado. Então, acho que é isso que você quer dizer.
Para editá-lo adequadamente, você desejará abrir o arquivo crontab do seu sistema executando o comando sudo vim /etc/crontab
Sinta-se à vontade para substituir ``vim" pelo seu editor de texto cli favorito.
Adicione a linha (substituindo as coisas apropriadas exatamente pelo que você precisa, como comandos, etc.) abaixo de todas as outras. @reboot evrouter
Nota: A melhor ideia pode ser criar um script e colocar os comandos nele e executar o script usando o crontab. A escolha é realmente sua.
Dependendo da sua distribuição, você pode ou não ter que colocar quem deseja que o comando seja executado como após. @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á mais útil para você.
Responder2
Usando o valor lightdm.conf
de, 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 =
funcionou... O Bash às vezes é errático.