PDA

View Full Version : Linux, eseguire uno script python all'avvio, sto impazzendo!


Brigante
09-01-2010, 17:44
Non riesco a fare uno cosa stupidissima: Eseguire uno script Python all'avvio su linux (kernel 2.6.17.14). Ho creato un piccolo file startmyprog.sh che contiene:

#!/bin/sh
# Start pyEventsManager
export LD_LIBRARY_PATH=/opt/lib
python /home/FLAVIO/Python/pyEventsManager/pyEventsManager.py &

Questo file .sh l'ho inserito in /etc/init.d e lanciandolo manualmente lo script Python viene correttamente eseguito (pyEventsManager.py) sia come utente normale che come root; invece al boot della macchina non c'è verso che parta! Non riesco a capire perchè! :confused: Ho anche inserito nel file .sh, dopo l'ultimo comando, la creazione di un piccolo file di testo con la scritta OK, per vedere se veniva elaborato al boot, ed è tutto OK, soltanto lo script Python non parte!
Avete qualche sufferimento?
Grazie!
;)

Chiancheri
09-01-2010, 18:06
Non riesco a fare uno cosa stupidissima: Eseguire uno script Python all'avvio su linux (kernel 2.6.17.14). Ho creato un piccolo file startmyprog.sh che contiene:

#!/bin/sh
# Start pyEventsManager
export LD_LIBRARY_PATH=/opt/lib
python /home/FLAVIO/Python/pyEventsManager/pyEventsManager.py &

Questo file .sh l'ho inserito in /etc/init.d e lanciandolo manualmente lo script Python viene correttamente eseguito (pyEventsManager.py) sia come utente normale che come root; invece al boot della macchina non c'è verso che parta! Non riesco a capire perchè! :confused: Ho anche inserito nel file .sh, dopo l'ultimo comando, la creazione di un piccolo file di testo con la scritta OK, per vedere se veniva elaborato al boot, ed è tutto OK, soltanto lo script Python non parte!
Avete qualche sufferimento?
Grazie!
;)


non è che dentro lo script lanci dei comandi che magari necessitano ad esempio della connessione o di servizi che al boot non sono pronti subito?

devi spiegare che cosa fa lo script.

dvd100
09-01-2010, 18:11
prova a mettere la riga
python /home/FLAVIO/Python/pyEventsManager/pyEventsManager.py &
nel file /etc/rc.local :)

Brigante
09-01-2010, 23:19
non è che dentro lo script lanci dei comandi che magari necessitano ad esempio della connessione o di servizi che al boot non sono pronti subito?

devi spiegare che cosa fa lo script.

No...Lo script è molto semplice, l'ho riportato nel messaggio sopra; le prime due righe sono commenti, poi c'è il comando per impostare il library path e infine il comando per lanciare il programmino Python...semplicissimo!
Non capisco...! :(

Brigante
09-01-2010, 23:22
prova a mettere la riga
python /home/FLAVIO/Python/pyEventsManager/pyEventsManager.py &
nel file /etc/rc.local :)

Non ho quel file in /etc.
:(

Tjherg
10-01-2010, 09:05
Non riesco a fare uno cosa stupidissima: Eseguire uno script Python all'avvio su linux (kernel 2.6.17.14). Ho creato un piccolo file startmyprog.sh che contiene:

#!/bin/sh
# Start pyEventsManager
export LD_LIBRARY_PATH=/opt/lib
python /home/FLAVIO/Python/pyEventsManager/pyEventsManager.py &

...
Grazie!
;)

Prova s scrivere così

exec /usr/bin/python /home/FLAVIO/Python/pyEventsManager/pyEventsManager.py &

oppure controlla se lo script ha i permessi di essere eseguito

ciusss89
10-01-2010, 09:15
Io sono alle prime armi, gli script che ho fatto erano per aggiungere funzionalià al openwrt...Penso che ti manchi il collegamento simbolico dello script dentro init.d dentro la dir rc (quella che con Sxx definisce la priorità di avvio..).
Hai gia dato un chmod +x a tuoi script?

Brigante
10-01-2010, 21:14
Nulla da fare! :( Ho provato tutti i vostri consigli e oltre...non va...il file .sh in /etc/init.d se lanciato a mano (digitando: ./startmyprog.sh) fa partire regolarmente il programmino Python, ma al boot no, nonostante venga correttamente letto. Ho creato anche il link S32startmyprog -> startmyprog.sh.
Non so più che fare...! :cry:
Eppure un motivo deve esserci.

dvd100
10-01-2010, 21:47
Non ho quel file in /etc.
:(

strano :confused:
prova a crearlo tu :D

Questo è il mio:

#!/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.

exit 0

Brigante
12-01-2010, 19:53
strano :confused:
prova a crearlo tu :D

Questo è il mio:

#!/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.

exit 0



...Niente da fare! Ci rinuncio! :muro:

blackgin
12-01-2010, 21:30
Hai provato a metterli come comandi nelle applicazioni d'avvio?

Brigante
14-01-2010, 21:12
Hai provato a metterli come comandi nelle applicazioni d'avvio?

La distribuzione Linux che ho è quella presente nel disco mybookworld della Western Digital, non ha utility per le applicazioni di avvio.
:(