EITSAEB

Team Peacemaker Hater
Se incorporó
10 Septiembre 2006
Mensajes
4.642
Eso amiguitos, necesito saber como ejecutar un script python al inicio de raspbian.

Intenté en el archivo

/etc/rc.local

agregando la linea:

python /ruta/script.py
sudo python /ruta/script.py
python "/ruta/script.py "

pero no funca. :penita

¿Alguna idea?


Ahora @VittokoX sácale brillo a la certificación :juntafrio y achora conocimientos.
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.464
raspbian no viene con systemd?

De todas formas, la que nunca falla es agregarlo bajo @reboot en tu crontab.

Saludos.


PD::: Movido al foro Domótica y Electrónica, recién renombrado :)
 

naarf

aaaasí no mas
Se incorporó
15 Diciembre 2011
Mensajes
663
Eso amiguitos, necesito saber como ejecutar un script python al inicio de raspbian.

Intenté en el archivo

/etc/rc.local

agregando la linea:

python /ruta/script.py
sudo python /ruta/script.py
python "/ruta/script.py "

pero no funca. :penita

¿Alguna idea?


Ahora @VittokoX sácale brillo a la certificación :juntafrio y achora conocimientos.
Probaste en la ruta /etc/rc.d/rc.local y diste el chmod +x ?
 

K3rnelpanic

non serviam
Miembro del Equipo
MOD
Se incorporó
1 Octubre 2007
Mensajes
6.052
Eso amiguitos, necesito saber como ejecutar un script python al inicio de raspbian.

Intenté en el archivo

/etc/rc.local

agregando la linea:

python /ruta/script.py
sudo python /ruta/script.py
python "/ruta/script.py "

pero no funca. :penita

¿Alguna idea?

Ahora @VittokoX sácale brillo a la certificación :juntafrio y achora conocimientos.
La pusiste antes de la línea "exit 0" o agregaste la linea al final?

Sino, prueba esta receta.
https://www.sparkfun.com/news/2779
 

hashimoto

Gold Member
Se incorporó
30 Julio 2006
Mensajes
2.385
Lo intenté según manual y no hay caso que se ejecute en segundo plano.

¿Alguna forma de conectarme via ssh, correr el programa y poder desloguearme sin que se termine el proceso?

si el script es mas largo teoricamente podrias deslogearte
 

K3rnelpanic

non serviam
Miembro del Equipo
MOD
Se incorporó
1 Octubre 2007
Mensajes
6.052
Lo intenté según manual y no hay caso que se ejecute en segundo plano.

¿Alguna forma de conectarme via ssh, correr el programa y poder desloguearme sin que se termine el proceso?
Dejalo corriendo con nohup
Hoy tengo algo de tiempo libre así que haré pruebas con las rpi de la casa, quizá es pura capa 8 lo tuyo :risas
 

EITSAEB

Team Peacemaker Hater
Se incorporó
10 Septiembre 2006
Mensajes
4.642
Dejalo corriendo con nohup
Hoy tengo algo de tiempo libre así que haré pruebas con las rpi de la casa, quizá es pura capa 8 lo tuyo :risas

Siempre pienso lo mismo. Por eso prefiero preguntar cuando no me resulta a la primera. :daleoh
 

RiNGo

Capo
Se incorporó
13 Julio 2005
Mensajes
106
Lo intenté según manual y no hay caso que se ejecute en segundo plano.

¿Alguna forma de conectarme via ssh, correr el programa y poder desloguearme sin que se termine el proceso?

Y probaste screen?
Entras, screen, dejas corriendo y cierras terminal. Luego para recuperar la sesion screen -r

Para el inicio, en ubuntu server 18 viene deshabilitado el rc.local (creo que ni existía el archivo). Hay que huevear un poco y lo habilitas nuevamente. Googlea las instrucciones, probablemente en raspbian sea lo mismo.

Yo configuré un server la semana pasada y necesitaba que hiciera un túnel reverso al inicio.

Tengo varios servers configurados de forma similar y el cron con @boot tenia algunas limitaciones /problemas, por lo que en su momento me decante por rc.local.

La otra forma era hacer un servicio systemd y habilitarlo, pero eso si que no recuerdo como, lo hice en un server hace un par de años y el túnel ssh se sigue levantando sin problemas.


Enviado desde mi iPhone utilizando Tapatalk
 

K3rnelpanic

non serviam
Miembro del Equipo
MOD
Se incorporó
1 Octubre 2007
Mensajes
6.052
Siempre pienso lo mismo. Por eso prefiero preguntar cuando no me resulta a la primera. :daleoh
Listo.
1ro: asignar permisos de ejecución al script, el mio está en /home/osmc/capa9.py
Código:
osmc@osmc2:~$ ll /home/osmc/capa9.py
-rwxr-xr-x 1 osmc osmc 195 Aug 21 14:28 /home/osmc/capa9.py
2do: editar /etc/rc.local y agregar el comando para correr el script
Código:
osmc@osmc2:~$ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
python /home/osmc/capa9.py
exit 0
Para el ejemplo mi script hace lo siguiente
Código:
osmc@osmc2:~$ cat capa9.py
#!/usr/bin/python
import time
localtime = time.ctime(time.time())
f = open("/home/osmc/bestia.txt", "w")
f.write("Hola, esto es una demo para capa9!\nLa hora es : " + localtime + "\n")
f.close()
reinicié y veo que todo salió como se esperaba
Código:
osmc@osmc2:~$ ll
total 16
-rw-r--r-- 1 osmc osmc  73 Aug 21 14:29 bestia.txt
-rwxr-xr-x 1 osmc osmc  195 Aug 21 14:28 capa9.py
-rw-r--r-- 1 osmc osmc  440 Aug 20 16:55 salida
drwxr-xr-x 2 osmc osmc 4096 Aug 21 14:13 scripts
osmc@osmc2:~$ cat bestia.txt
Hola, esto es una demo para capa9!
La hora es : Wed Aug 21 14:29:27 2019
osmc@osmc2:~$
 

EITSAEB

Team Peacemaker Hater
Se incorporó
10 Septiembre 2006
Mensajes
4.642
Listo.
1ro: asignar permisos de ejecución al script, el mio está en /home/osmc/capa9.py
Código:
osmc@osmc2:~$ ll /home/osmc/capa9.py
-rwxr-xr-x 1 osmc osmc 195 Aug 21 14:28 /home/osmc/capa9.py
2do: editar /etc/rc.local y agregar el comando para correr el script
Código:
osmc@osmc2:~$ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
python /home/osmc/capa9.py
exit 0
Para el ejemplo mi script hace lo siguiente
Código:
osmc@osmc2:~$ cat capa9.py
#!/usr/bin/python
import time
localtime = time.ctime(time.time())
f = open("/home/osmc/bestia.txt", "w")
f.write("Hola, esto es una demo para capa9!\nLa hora es : " + localtime + "\n")
f.close()
reinicié y veo que todo salió como se esperaba
Código:
osmc@osmc2:~$ ll
total 16
-rw-r--r-- 1 osmc osmc  73 Aug 21 14:29 bestia.txt
-rwxr-xr-x 1 osmc osmc  195 Aug 21 14:28 capa9.py
-rw-r--r-- 1 osmc osmc  440 Aug 20 16:55 salida
drwxr-xr-x 2 osmc osmc 4096 Aug 21 14:13 scripts
osmc@osmc2:~$ cat bestia.txt
Hola, esto es una demo para capa9!
La hora es : Wed Aug 21 14:29:27 2019
osmc@osmc2:~$


:inlove , voy a intentar sacarle el # a la ruta del script :uy
 

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.271
que chu
googlear no cuesta mucho
hace tiempo que rc-local viene desactivado por defecto
hay que crear el archivo con la definición del servicio, habilitarlo en systemd y después crear el archivo /etc/rc.local como pusieron más arriba

son unos 3 o 4 pasos pero con eso queda listeilor

Enviado desde mi moto g(7) plus mediante Tapatalk
 

K3rnelpanic

non serviam
Miembro del Equipo
MOD
Se incorporó
1 Octubre 2007
Mensajes
6.052
que chu
googlear no cuesta mucho
hace tiempo que rc-local viene desactivado por defecto
hay que crear el archivo con la definición del servicio, habilitarlo en systemd y después crear el archivo /etc/rc.local como pusieron más arriba

son unos 3 o 4 pasos pero con eso queda listeilor

Enviado desde mi moto g(7) plus mediante Tapatalk
raspbian 9 es mágico entonces porque me funcionó igual :zippy

Ahora, el bestia no ha especificado que hace el script de python.
 

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.271
jaja sí, puede ser
o también es factible que venga sin systemd, pero no tengo ninguno para comprobarlo xD


Enviado desde mi moto g(7) plus mediante Tapatalk
 

EITSAEB

Team Peacemaker Hater
Se incorporó
10 Septiembre 2006
Mensajes
4.642
raspbian 9 es mágico entonces porque me funcionó igual :zippy

Ahora, el bestia no ha especificado que hace el script de python.

Lo intenté con raspbian 9 y nada.

Intenté con systemd y da error llamando una libreria. Ni idea considerando que en la consola funciona sin problemas.

Intenté instalando Debian 10 y fue peor. porque por defecto me toma Python2 :bmuerta

Filo. Voy a intentar con Ubuntu Mate a ver que zarpa. si al final deshabilitando todos los servicios debería funcionar bien
 

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.271
Lo intenté con raspbian 9 y nada.

Intenté con systemd y da error llamando una libreria. Ni idea considerando que en la consola funciona sin problemas.

Intenté instalando Debian 10 y fue peor. porque por defecto me toma Python2 :bmuerta

Filo. Voy a intentar con Ubuntu Mate a ver que zarpa. si al final deshabilitando todos los servicios debería funcionar bien

https://www.eninsoft.com/habilitar-el-rc-local-en-debian-9-stretch/

ahi estan los pasos para re-habilitar el servicio rc-local en systemd sobre debian 9
 

EITSAEB

Team Peacemaker Hater
Se incorporó
10 Septiembre 2006
Mensajes
4.642
Finalmente lo tengo operativo. Desconozco si el procedimiento está completamente correcto pero al menos funciona.

en vez de buscar la ruta:

/etc/systemd/nombre.service

lo hice en

/lib/systemd/system/nombre.service

:hotdog
 

Freeman77

Experto en Hardware
Se incorporó
1 Mayo 2010
Mensajes
97
Un poco tarde pero en Raspbian me ha funcionado de estas 2 formas, con la primera nunca falla su ejecución y se reinicia automáticamente.

1. Método systemd:

Crear archivo en:
/etc/systemd/system/blink.service
Código:
[Unit]
Description=Blink service
After=syslog.target network.target

[Service]
User=pi
Type=simple
ExecStart=/usr/bin/python3 /home/pi/blink.py  
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Habilitar el servicio creado
Código:
> sudo systemctl daemon-reload
> sudo systemctl enable blink.service


2. Método crontab:
Código:
> crontab -e

@reboot python /home/pi/blink.py &
 
Subir