Hola,
estoy intentando crear un programa en python para hacer timelapses. La idea es dejar la RPI en un lugar con un powerbank conectado toda la noche e ir tomando fotografías. El programa tiene dos opciones, la primera toma una foto de baja calidad para ver el encuadre, y una vez visto que el encuadre es el correcto, la segunda opción te pide cuantas fotos tomar y cada cuanto tiempo. A la RPI me conecto con el móvil por SSH, pero el problema que me encuentro es cuando desconecto el móvil de la conexión SSH se cierra la sesión y se deja de ejecutar el programa. He probado con NOHUP pero no me funciona.
¿Alguna solución?
Gracias
Re: Dejar programa ejecutandose despues de cerrar conexion S
Prueba ejecutar el programa al inicio, con crontab:
Agregar al final el programa a ejecutar, con el prefijo que indica que lo debe hacer al iniciar:
Lo que pongo es como ejemplo, reemplaza la ubicación y nombre por el tuyo.
Agrega sudo luego de python si require permisos administrador.
Slds!
Code: Select all
crontab -e
Code: Select all
@reboot python /home/pi/programa.py
Agrega sudo luego de python si require permisos administrador.
Slds!
Robot +Camara +Sensores +Encoder +Servo +Matriz8x8 +Joystick:
https://www.raspberrypi.org/forums/viewtopic.php?f=76&t=130470
https://www.raspberrypi.org/forums/viewtopic.php?f=76&t=130470
Re: Dejar programa ejecutandose despues de cerrar conexion S
Echa un vistazo:
http://www.kossboss.com/linux---move-ru ... cess-nohup
Y ya de paso, para pasar tus fotos a vídeo, aquí también puedes encontrar ayuda aunque quizá ya lo hayas resuelto:
http://www.kossboss.com/linux---app-scr ... e---capush
http://www.kossboss.com/linux---move-ru ... cess-nohup
Y ya de paso, para pasar tus fotos a vídeo, aquí también puedes encontrar ayuda aunque quizá ya lo hayas resuelto:
http://www.kossboss.com/linux---app-scr ... e---capush
-
- Posts: 30
- Joined: Sun Jan 22, 2012 10:35 pm
Re: Dejar programa ejecutandose despues de cerrar conexion S
Igual para este caso concreto no te sirve, pero para dejar procesos corriendo y no tener que dejar la sesión ssh abierta, a mi me gusta mucho screen.
Aquí hay un tutorial, que es el que seguí yo para aprender a usarlo. http://tuxpepino.wordpress.com/2007/05/ ... as-screen/
Aquí hay un tutorial, que es el que seguí yo para aprender a usarlo. http://tuxpepino.wordpress.com/2007/05/ ... as-screen/
- yv1hx
- Posts: 383
- Joined: Sat Jul 21, 2012 10:09 pm
- Location: Now an expatriate, originally from Zulia, Venezuela
- Contact: Website Skype
Re: Dejar programa ejecutandose despues de cerrar conexion S
Hola Vaspincho:
La solucion es colocar un caracter & al final de cada linea de comando, de esta forma el script o programa se ejecuta y finaliza su tarea independientemente si el usuario esté logeado o no; obviamente, tienen que ser tareas no interactivas, vale decir, aquellas que no requieran de un humano para hacer su trabajo (pero creo que esto ya lo tienes claro)
Te inserto abajo un extracto de mis tareas cron:
Aprovechando el post, les dejo este enlace para ayudar a la programacion de tareas cron:
http://www.generateit.net/cron-job/
Este es un "ayuda memoria" para el programador de tareas cron, no es de mi autoria, lamentablemente no recuerdo de donde lo copie
Pueden insertarlo sin inconvenientes dentro de su archivo cron.
Suerte!
La solucion es colocar un caracter & al final de cada linea de comando, de esta forma el script o programa se ejecuta y finaliza su tarea independientemente si el usuario esté logeado o no; obviamente, tienen que ser tareas no interactivas, vale decir, aquellas que no requieran de un humano para hacer su trabajo (pero creo que esto ya lo tienes claro)

Te inserto abajo un extracto de mis tareas cron:
Code: Select all
#
# m h dom mon dow command
*/1 * * * * uptime > /var/www/status.txt &
*/2 * * * * /home/pi/TempHistory/tempreg.sh &
*/2 * * * * php /home/pi/AmbientTemp/ReadAmbientTemp.php &
*/60 * * * * boinccmd --get_tasks > /var/www/boinc/boincstats.txt &
#
http://www.generateit.net/cron-job/
Este es un "ayuda memoria" para el programador de tareas cron, no es de mi autoria, lamentablemente no recuerdo de donde lo copie

Code: Select all
#
# CronTab_Cheat_Sheet
#
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name /Path/To/Command/ToBe/Executed
#
Suerte!
Marco-Luis
Telecom Specialist (Now Available for Hire!)
http://www.meteoven.org
http://twitter.com/yv1hx
Telecom Specialist (Now Available for Hire!)
http://www.meteoven.org
http://twitter.com/yv1hx
Re: Dejar programa ejecutandose despues de cerrar conexion S
Yo uso el comando nohup, esto hace que se ignore el proceso al cerrar la conexion SSH con lo cual sigue abierto aunque no estes loggeado.
Por ejemplo, si quiero reproducir una pelicula desde el omxplayer iniciando desde el movil, no quiero tener la conexion abierta todo el rato ya que gasta bateria asi que escribo nohup antes del correspondiente comando:
Luego, cuando quieras cerrar el proceso, o esperas a que termine por si mismo o lo buscas en las lista de procesos y lo matas tu. Yo para hacerlo rapido mato todos los procesos de mi sesion con:
Donde usuario es, obviamente, tu usuario, por ejemplo, pi.
Tambien puedes hacer un reboot y listo.
Un saludo
Por ejemplo, si quiero reproducir una pelicula desde el omxplayer iniciando desde el movil, no quiero tener la conexion abierta todo el rato ya que gasta bateria asi que escribo nohup antes del correspondiente comando:
Code: Select all
nohup omxplayer pelicula1.avi
Code: Select all
sudo killall -u usuario
Tambien puedes hacer un reboot y listo.
Un saludo