apagar el ordenador cuando acaba una pelicula

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )
Responder
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

apagar el ordenador cuando acaba una pelicula

Mensaje por fpuga »

Estoy tratando de hacer un script que apague el ordenador cuando una película termine de reproducirse. Como uso KDE con kaffeine estoy tratando de hacerlo para esta combinación.

La idea sería algo como esto (script bash)

kaffine $1
#Calcular la duración del vídeo
DURACION=$(dcop kaffeine KaffeineIface getLength)
PAUSAR (DURACION)
#Apagado limpio
dcop ksmserver ksmserver logout 0 2 2


Lo que pasa que no se que comando emplear para que se pause durante los segundo que yo quiero.

Cualquier otra idea es bienvenida.
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]

Avatar de Usuario
alqui
Forista Distinguido
Forista Distinguido
Mensajes: 1412
Registrado: Dom Feb 22, 2004 8:00 am

Re: apagar el ordenador cuando acaba una pelicula

Mensaje por alqui »

Creo que el comando sleep te puede servir:

Código: Seleccionar todo

sleep $DURACION

Avatar de Usuario
vampir
Forista Distinguido
Forista Distinguido
Mensajes: 1031
Registrado: Mar Nov 21, 2006 8:00 am
Ubicación: Mi casa, Sant marçal, marratxí, mallorca, baleares, españa, europa, el mundo, planeta solar...
Contactar:

Re: apagar el ordenador cuando acaba una pelicula

Mensaje por vampir »

o un script asi

se llama al script en linea de comandos " script pelicula"

kaffein $1
halt -p

en el momento que kafein se deje de ejecutar, se apagara el PC, bueno, tienes que tener permisos de root (o almenos para ejecutar ese comando...asi que un sudo halt..o los cambios pertinentes lo solucionaran
linux user #439128
DebianSqueeze
http://www.acarrasco.es

Proyecto:
http://alejandria.host56.com

Código: Seleccionar todo

No sé juntar "informática" y "legal" en una misma palabra....
yo sí: LINUX

Avatar de Usuario
alqui
Forista Distinguido
Forista Distinguido
Mensajes: 1412
Registrado: Dom Feb 22, 2004 8:00 am

Re: apagar el ordenador cuando acaba una pelicula

Mensaje por alqui »

Esto que dices, vampir, no funcionará por dos razones:

1- kaffeine inicia un proceso en segundo plano y devuelve el control enseguida, de manera que el halt se ejecutaría immdiatamente.

2- El kaffeine no se cierra cuando acaba de reproducir una película.

Sin embargo, con mplayer si que funcionaria, ya que se ejecuta en primer plano y cuando acaba la película termina.

Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: apagar el ordenador cuando acaba una pelicula

Mensaje por akodo »

Me quedo con lo que ha dicho alqui.
Realmente no tienes mucho más control sobre cuándo acaba la película desde el exterior del programa.
No sé se tendrá esa opción, pero mira a ver tanto en las opciones de línea de comandos como en el menú de la interfaz gráfica (porque tiene interfaz gráfica ¿no?) a ver si encuentras algo así como apagar al finalizar. Es más factible que algo así esté dentro del programa

Avatar de Usuario
alqui
Forista Distinguido
Forista Distinguido
Mensajes: 1412
Registrado: Dom Feb 22, 2004 8:00 am

Re: apagar el ordenador cuando acaba una pelicula

Mensaje por alqui »

He encontrado como hacerlo:

Código: Seleccionar todo

#!/bin/bash
kaffeine "$@"
while `dcop kaffeine KaffeineIface isPlaying`
do
    sleep 10
done
killall kaffeine
dcop ksmserver ksmserver logout 0 2 2
He comprobado que funciona.

fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: apagar el ordenador cuando acaba una pelicula

Mensaje por fpuga »

Gracias, os habeis adelantado a mi, ayer por la noche probé mi propio script

Código: Seleccionar todo

#!/bin/sh

# apaga_pelis.sh  v0.1
# Francisco Puga. http://conocimientoabierto.es
# Author makes devolution of this code to Public Domain 

# Sólo funciona con dcop (KDE 3.5 o inferior) y el reproductor kaffeine

# Lanza la pelicula deseada, calcula su duración y se duerme a la espera 
# de que pase ese tiempo. Cuando se despierta calcula si la película ya ha 
# finalizado (por si ha habido pausas) y si no vuelve a dormirse.

kaffeine $1

#Calculamos la duracion y le sumamos 30s para que no apague justo despues
DURACION=$(expr $(dcop kaffeine KaffeineIface getLength) + 60)
sleep $DURACION

while [ $(dcop kaffeine KaffeineIface isPlaying) == "true" ]; do
    
    RESTA=$(expr $DURACION - $(dcop kaffeine KaffeineIface getTimePos))
    sleep $RESTA
done

dcop ksmserver ksmserver logout 0 2 2
Lo he puesto dentro del menú "abrir con" de este modo no hay que lanzarlo desde el terminal. Lo único que esta mañana cuando encendí el ordenador la pantalla se quedo en negro. Hice un ctrl+alt+f1 y luego volví al gráfico y ya funcionó, pero me mosquea...
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]

Avatar de Usuario
alqui
Forista Distinguido
Forista Distinguido
Mensajes: 1412
Registrado: Dom Feb 22, 2004 8:00 am

Re: apagar el ordenador cuando acaba una pelicula

Mensaje por alqui »

fpuga escribió:Lo único que esta mañana cuando encendí el ordenador la pantalla se quedo en negro. Hice un ctrl+alt+f1 y luego volví al gráfico y ya funcionó, pero me mosquea...
¿Puede ser porque al cerrar una sesión kde los programas que están funcionando se inician en la siguiente sesión? Prueba añadiendo un "killall kaffeine" antes de apagar (fíjate en mi script).

fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: apagar el ordenador cuando acaba una pelicula

Mensaje por fpuga »

En lugar del killall he usado

dcop kaffeine KaffeineIface quit

y todo parece ir correcto. Gracias
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje