StandardBus Inviato 6 Maggio 2013 Condividi Inviato 6 Maggio 2013 http://www.nonsologaming.com/vd/Raspberry-Pi-Resize-Boot-Screen.jpg Per le sue dimensioni e per il limitato consumo, il Raspberry si presta volentieri a lavori che non richiedono l'interazione con l'utente tramite lo schermo. In tal caso potrebbe essere necessario trovare il modo di avviare un programma in automatico all'accensione del Raspberry, in modo che non sia necessario un intervento dall'esterno per eseguire un determinato compito. Ipotizziamo di trasformare il Raspberry in un semplice allarme per la casa, e di posizionare un relè collegato ad una ricevente radio che attiva/disattiva l'alimentazione sul Raspberry: premendo il telecomando andremo ad eccitare il relè che quindi permetterà alla corrente di alimentarlo... conseguentemente il Raspberry avvierà la procedura di boot, il sistema ed infine il programma che pilota la sirena (più o meno complesso), che magari ci avvisa via mail dell'intrusione da tal porta piuttosto che dalla finestra. In questo caso vogliamo ovviamente dire al sistema di avviare ad ogni accensione il programma dell'allarme... non abbiamo tempo nè voglia di stare ad avviare manualmente il programma prima di uscire di casa. A seconda dei casi, il programma potrà essere avviato senza server X o solo in modalità grafica, quindi avremo due differenti procedure. Avviare un programma dopo il server X: La gran parte dei programmi che utilizziamo hanno un interfaccia grafica... e come tali, richiedono che il sistema abbia già avviato in precedenza un gestore grafico che sia in grado di supportarli. Si sta parlando dell'X Window system, disponibile per tutti i sistemi Linux. Alla luce di questo diventa chiaro come sia indispensabile rispettare una sequenza di avvio affinchè tutto funzioni a dovere: ogni programma (con interfaccia grafica) in esecuzione all'avvio dovrà aspettare che il server X sia pronto, e quindi avviarsi dopo di lui. Per avviare un programma solo dopo l'avvio dell'X server dovremo procedere in questo modo: Visto che si sta parlando di modalità grafica, apriamo un terminale. Creiamo la cartella "autostart" dando il seguente comando: mkdir ~/.config/autostart ...e all'interno della cartella autostart creiamo un file vuoto: touch ~/.config/autostart/nomeprogramma.desktop Chiaramente al posto di "nomeprogramma" potremo mettere qualsiasi nome ci aiuti a riconoscere il file, l'importante è che abbia l'estensione .desktop. Ora dovremo modificare il file fornendogli le informazioni del programma che ci interessa avviare: sudo leafpad ~/.config/autostart/ In questo modo si aprirà l'editor di testo predefinito all'interno di Raspbian. Compiliamo il contenuto del file come segue: [Desktop Entry] Name=nomeprogramma Exec=comando Type=application "nomeprogramma" e "comando" saranno le uniche informazioni che dovrete modificare. Dovrete a questo punto identificare quale comando permette l'avvio da terminale del programma che vi interessa, e inserirlo sotto la voce Exec=, in sostituzione al testo "comando". Salvate, chiudete l'editor ed il gioco è fatto. Ad ogni accensione il programma verrà avviato come richiesto. Avviare un programma che non richiede il server X: In questo caso andremo a richiedere al sistema di avviare un programma prima della richiesta di login da linea di comando. Il server X sarà quindi disattivato o addirittura assente. Da linea di comando richiediamo tramite l'editor "nano" la modifica del file rc.local (se non presente verrà creato): sudo nano /etc/rc.local Appena prima della linea "exit" inseriamo il programma che vogliamo eseguire. In alternativa è possibile anche richiedere l'esecuzione di uno script python inserendo nel file di testo il comando python /posizione/dello/script.py Fatto questo sarà sufficiente salvare, confermare ed uscire. Al riavvio lo script/programma verrà eseguito. TIP: Ricordate che entrambi le procedure sono valide su Raspberry come su qualsiasi altra macchina Linux. Link al commento Condividi su altri siti Altre opzioni di condivisione...
mouse100 Inviato 15 Maggio 2013 Condividi Inviato 15 Maggio 2013 Tengo a precisare che la procedura dovrà essere effettuata da parte dell'utente che vuole avviare l'app all'avvio. Ovvero io ho provato ad avviare all'avvio transmission e quando ho settato l'autostart questo non partiva perché bisognava creare il file di autostart sia per l'utente corrente che per root. Quindi sia in: /home/nomeutente/.config/autostart/ sia in ~/.config/autostart/ Infatti ieri mi sono accorto di avere il file "transmission.desktop" solo nella cartella autostart root quindi l'interfaccia grafica non si avviava in aitomatico perché il raspberry esegue l'accesso al desktop da utente "pi" e di conseguenza mi è toccato creare il file "transmission.desktop" anche per l'utente "pi". ---------------------- Nexus 7 3G - Tapatalk Link al commento Condividi su altri siti Altre opzioni di condivisione...
StandardBus Inviato 15 Maggio 2013 Autore Condividi Inviato 15 Maggio 2013 Grazie per la precisazione, ho dato per scontato che si utilizzasse solo l'utente pi. Non è necessario creare il file di autostart per l'utente root, basta quello per l'utente pi. Link al commento Condividi su altri siti Altre opzioni di condivisione...
mouse100 Inviato 15 Maggio 2013 Condividi Inviato 15 Maggio 2013 Grazie per la precisazione, ho dato per scontato che si utilizzasse solo l'utente pi. Non è necessario creare il file di autostart per l'utente root, basta quello per l'utente pi. Ottimo cosi evito di fare doppio lavoro o copia di file inutili. Io pensavo fosse necessario crearlo anche in root per avere particolari privilegi con uso di programmi. Ad esempio transmission che deve avviarsi e "scrivere" su cartelle di sistema i file scaricati. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Aiden Inviato 14 Settembre 2013 Condividi Inviato 14 Settembre 2013 (modificato) Sto provando a farlo per VNC, creando il file tightvnc.desktop sotto /home/pi/.config/autostart/ ed inserendo [Desktop Entry] Type=Application Name=TightVNC Exec=vncserver :1 StartupNotify=false Salvo, riavvio, ma comunque il server VNC non parte in automatico ma lo devo forzare da SSH...Dove sbaglio? EDIT: non chiedetemi perchè, dopo che ho fatto l'aggiornamento della distro + fw, ora funziona senza problemi xD In ogni caso, GRAZIE! Modificato 14 Settembre 2013 da Aiden Link al commento Condividi su altri siti Altre opzioni di condivisione...
alberto79 Inviato 13 Febbraio 2014 Condividi Inviato 13 Febbraio 2014 ciao a tutti una volta mi partiva pyload in automatico ora non mi parte più questo è il mio 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. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi python /usr/share/pyload/pyLoadCore.py --daemon exit 0 però non mi parte più il demone. se nella shell di putty lancio python /usr/share/pyload/pyLoadCore.py --daemon parte il demone suggerimenti grazie Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati