
Estoy usando evrouter para simular las pulsaciones de teclas de los botones adicionales de mi mouse. Funciona muy bien, pero necesito ejecutar el comando con sudo para que funcione, de modo que no pueda usar mi DE para manejar el inicio automático.
Consideré init.d pero, por lo que he oído, esto solo funciona para diferentes etapas del arranque y necesito que se ejecute como root.despuésacceso.
$ 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:Muy bien, parece que puedo usar session-setup-script
la opción de lightdm.conf para ejecutar un script como root. El script que tengo se encuentra a continuación, pero como se esperaba, cuando se ejecuta como root, id -u
ya no es igual a 1000 y la instrucción if nunca se ejecuta. ¿Existe algún argumento o variable que pueda usar para obtener el nombre de usuario o la identificación?
Respuesta1
Después de que su computadora arranca, Linux ejecuta lo que esté en el archivo crontab de su sistema. Cron es un programa que programa comandos, programas o scripts para que se ejecuten en momentos muy específicos del día. Cada usuario tiene un crontab, pero en esta situación el crontab del sistema es apropiado para tal trabajo.
Puede configurar cron para ejecutar comandos o programas cuando se inicia el sistema. Entonces, creo que esto es lo que quieres decir.
Para editarlo en consecuencia, deberá abrir el archivo crontab de su sistema ejecutando el comando. sudo vim /etc/crontab
Siéntase libre de reemplazar "vim" con su editor de texto cli favorito.
Agregue la línea (reemplazando las cosas apropiadas con exactamente lo que necesita, como comandos, etc.) debajo de todas las demás. @reboot evrouter
Nota: La mejor idea podría ser crear un script, colocar los comandos en él y ejecutar el script usando crontab. Realmente es tu elección.
Dependiendo de su distribución, es posible que tenga o no que indicar quién desea que se ejecute el comando después. @reboot
La mayoría de las veces, el archivo crontab tendrá algunos comentarios en la parte superior del archivo para indicarle. Por supuesto, mirar las otras entradas de este archivo probablemente le resultará más útil.
Respuesta2
Al usar lightdm.conf
el session-setup-script
valor de pude ejecutar el comando como root como se esperaba.
session-setup-script=/opt/hacks/lightdm-startup
Mientras tanto, en otra carpeta:
#!/bin/bash
if [ "$USER" = "j" ]
then
evrouter /dev/input/event4
fi
Todavía no estoy seguro de por qué ==
no funcionó en la declaración if y =
lo hizo... Bash es errático a veces.