| Autor |
Mensaje |
fpuga

Forista Mayor
Registrado: Vie Ago 24, 2007 11:00 pm Mensajes: 790 Ubicación: Galicia - España
|
 Publicado: Dom Dic 28, 2008 4:21 am |
|
|
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: Conocimiento Abierto
|
|
|
|
 |
alqui

Forista Distinguido
Registrado: Dom Feb 22, 2004 12:00 am Mensajes: 1412
|
 Publicado: Dom Dic 28, 2008 6:29 am |
|
Creo que el comando sleep te puede servir:
Código: sleep $DURACION
|
|
|
|
 |
vampir

Forista Distinguido
Registrado: Mar Nov 21, 2006 12:00 am Mensajes: 1031 Ubicación: Mi casa, Sant marçal, marratxí, mallorca, baleares, españa, europa, el mundo, planeta solar...
|
 Publicado: Dom Dic 28, 2008 11:14 am |
|
|
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: No sé juntar "informática" y "legal" en una misma palabra.... yo sí: LINUX
|
|
|
|
 |
alqui

Forista Distinguido
Registrado: Dom Feb 22, 2004 12:00 am Mensajes: 1412
|
 Publicado: Dom Dic 28, 2008 12:47 pm |
|
|
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.
|
|
|
|
 |
akodo

Moderador
Registrado: Mié Nov 28, 2007 12:00 am Mensajes: 1345 Ubicación: En la X del explorer (pulse para llamar)
|
 Publicado: Dom Dic 28, 2008 3:38 pm |
|
|
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
|
|
|
|
 |
alqui

Forista Distinguido
Registrado: Dom Feb 22, 2004 12:00 am Mensajes: 1412
|
 Publicado: Dom Dic 28, 2008 6:49 pm |
|
He encontrado como hacerlo:
Código: #!/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
Registrado: Vie Ago 24, 2007 11:00 pm Mensajes: 790 Ubicación: Galicia - España
|
 Publicado: Lun Dic 29, 2008 4:28 am |
|
Gracias, os habeis adelantado a mi, ayer por la noche probé mi propio script Código: #!/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: Conocimiento Abierto
|
|
|
|
 |
alqui

Forista Distinguido
Registrado: Dom Feb 22, 2004 12:00 am Mensajes: 1412
|
 Publicado: Lun Dic 29, 2008 5:00 am |
|
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
Registrado: Vie Ago 24, 2007 11:00 pm Mensajes: 790 Ubicación: Galicia - España
|
 Publicado: Mar Dic 30, 2008 3:45 am |
|
|
En lugar del killall he usado
dcop kaffeine KaffeineIface quit
y todo parece ir correcto. Gracias
_________________ Mi blog: Conocimiento Abierto
|
|
|
|
 |
|
|
|