Shutdown desde IR [Solucionado]

Hola a todos, estoy configurando el HTPC del salon. Lo tengo funcionando con el XBMC y un mando a distancia configurado con LIRC.

Lo que quiero es poder apagar el ordenador con el mando a distancia, pero si el proceso XBMC esta ejecutandose que no haga nada.

Para apagarlo utilizo IRexec de esta manera:

$ cat .lircrc
begin
prog = irexec
button = KEY_POWER
config = /home/aita/.scripts/shutdown.sh &
end
$ cat .scripts/shutdown.sh
#!/bin/bash

sudo shutdown -h now

Si, es un Ubuntu, lo tengo para tema de drivers (Nvidia ION)

Con estos dos scripts me apaga el ordenador bien, pero lo que quiero es si pulso ese boton cuando estoy en el XBMC, salga de XBMC. Esto lo configuro en otro sitio. Pero si proceso XBMC esta en marcha que no haga nada el IRexec.

Lo que he pensado es editar el shutdown.sh y que se asegure que el proceso XBMC no este corriendo:

$ ps -e | grep xbmc
1771 ?        00:00:00 xbmc
1779 ?        00:00:24 xbmc.bin

Pero no tengo ni pajolera idea de como empezar, soy bastante nulo en esto de bash scripting.

¿Alguien me ayuda con esto?

Muchas gracias y saludos.

Hay una cosa que no me aclaro:

jlazkano escribió:

lo que quiero es si pulso ese boton cuando estoy en el XBMC, salga de XBMC. Esto lo configuro en otro sitio. Pero si proceso XBMC esta en marcha que no haga nada el IRexec.

Si estas en XBMC, y pulsas el mando ¿que tiene que hacer IRexec, nada o salir de XBMC?
Bueno, en cualquier caso, da igual. Creo que con esto ya sabrás hacerlo:

FOUND=$(($(ps aux |grep xbmc |wc -l) -1))

Si no encuentra, da 0. Si encuentra, da distinto de 0. Metelo en un if, y te lo pillará perfectamente.

Por cierto:

jlazkano escribió:

sudo shutdown -h now

¿¿?? Si lo ejecutas como root, no necesitas sudo. Y si lo ejecutas como usuario normal, te pedirá password, por lo que el mando a distancia de poco te sirve...

darkxer0x escribió:
jlazkano escribió:

sudo shutdown -h now

¿¿?? Si lo ejecutas como root, no necesitas sudo. Y si lo ejecutas como usuario normal, te pedirá password, por lo que el mando a distancia de poco te sirve...

Con un buen sudoers configurado no hace falta poner clave.

Saludos.

Efectivamente, lo tengo configurado en /etc/sudoers.

Gracias por el script, a la noche lo pruebo. Si esta dentro de XBMC el IRexec no tiene que hacer nada, el mismo programa tiene otra configuracion, y saldra Y a la segunda (se supone que el XBMC esta cerrado) que apague el ordenador.

Gracias y saludos.

toniusco escribió:
darkxer0x escribió:
jlazkano escribió:

sudo shutdown -h now

¿¿?? Si lo ejecutas como root, no necesitas sudo. Y si lo ejecutas como usuario normal, te pedirá password, por lo que el mando a distancia de poco te sirve...

Con un buen sudoers configurado no hace falta poner clave.

Saludos.

Vale, lo que tu llamas bien configurado, yo lo llamo un peligro. Y si no lo tienes restringido solo a unos ciertos comandos, mal configurado tambien :)

Gracias!!! Ya funciona perfecto, este es script final:

$ cat .scripts/shutdown.sh
#!/bin/bash

# Si no esta el XBMC ejecutandose dara 0, sino mayor que 0
FOUND=$(($(ps aux |grep xbmc |wc -l) -1))

if [ $FOUND == 0 ]; then
sudo shutdown -h now
fi

Lo de que es un peligro, la verdad que esta maquina no me preocupa mucho, es un HTPC. Evidentemente en el servidor no pondria esos permisos a los usuarios.

Gracias por todo y saludos.