Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema  [ 9 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Mayor
Forista Mayor
Avatar de Usuario

Registrado: Vie Ago 24, 2007 11:00 pm
Mensajes: 700
Ubicación: Galicia - España

Nota Publicado: Dom Dic 28, 2008 4:21 am 
Arriba  
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

 Perfil WWW  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Dom Feb 22, 2004 12:00 am
Mensajes: 1410

Nota Publicado: Dom Dic 28, 2008 6:29 am 
Arriba  
Creo que el comando sleep te puede servir:

Código:
sleep $DURACION

 Perfil  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mar Nov 21, 2006 12:00 am
Mensajes: 1005
Ubicación: Mi casa, Sant marçal, marratxí, mallorca, baleares, españa, europa, el mundo, planeta solar...

Nota Publicado: Dom Dic 28, 2008 11:14 am 
Arriba  
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....SI LINUX

 Perfil Email WWW  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Dom Feb 22, 2004 12:00 am
Mensajes: 1410

Nota Publicado: Dom Dic 28, 2008 12:47 pm 
Arriba  
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.

 Perfil  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Nov 28, 2007 12:00 am
Mensajes: 923
Ubicación: En la X del explorer (pulse para llamar)

Nota Publicado: Dom Dic 28, 2008 3:38 pm 
Arriba  
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

 Perfil  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Dom Feb 22, 2004 12:00 am
Mensajes: 1410

Nota Publicado: Dom Dic 28, 2008 6:49 pm 
Arriba  
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.

 Perfil  

Desconectado
Forista Mayor
Forista Mayor
Avatar de Usuario

Registrado: Vie Ago 24, 2007 11:00 pm
Mensajes: 700
Ubicación: Galicia - España

Nota Publicado: Lun Dic 29, 2008 4:28 am 
Arriba  
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

 Perfil WWW  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Dom Feb 22, 2004 12:00 am
Mensajes: 1410

Nota Publicado: Lun Dic 29, 2008 5:00 am 
Arriba  
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).

 Perfil  

Desconectado
Forista Mayor
Forista Mayor
Avatar de Usuario

Registrado: Vie Ago 24, 2007 11:00 pm
Mensajes: 700
Ubicación: Galicia - España

Nota Publicado: Mar Dic 30, 2008 3:45 am 
Arriba  
En lugar del killall he usado

dcop kaffeine KaffeineIface quit

y todo parece ir correcto. Gracias

_________________
Mi blog: Conocimiento Abierto

 Perfil WWW  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 9 mensajes ] 

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro


cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO