Per poter creare uno script che venga automaticamente lanciato ad ogni avvio di Ubuntu, dobbiamo creare un file .sh nella cartella /etc/init.d/.
Quindi:
sudo gedit /etc/init.d/nomescript.sh
Scriviamo all’interno del file lo scirpt che vogliamo sia lanciato, diamo i permessi di esecuzione:
sudo chmod a+x /etc/init.d/nomescript.sh
ed infine lo lanciamo:
sudo update-rc.d nomescript.sh defaults
Ora lo script verrà eseguito ad ogni avvio della macchina.





messo questo script come da te segnalato…
ma nessuna traccia all’avvio:
#!/bin/sh
beryl –replace &
emerald –replace &
uso kde ma mi par di capire che nn c’entri
e se lo script lo lanci manualmente funziona??
si
Ciao forse è meglio che i comandi tipo beryl ed emerald tu le inserisca dopo il boot del sistema, perchè interessano una modifica della grafica (di X). Il motivo per cui così non funziona è che probabilmente mancanno particolari variabili d’ambiente che non sono ancora state settate. Gli script /etc/init.d/ sono usati solitamente per lanciare dei servizi che richiedano i privilegi di root, ad esempio il bluetooth e la connessione ad internet, quindi andrebbero usati solo in questo caso.
Oltre agli script in /etc/init.d/ c’è un’altro modo per far partire programmi al boot, infatti ad ogni avvio viene eseguito il file /etc/rc.local, che di default non contiene alcun comando. Se si vuol inserire un comando che richieda i privilegi di root e non abbia bisogno di esser lanciato con una precisa priorità, quella di /etc/rc.local è la soluzione più semplice.
ciao
ti ringrazio Fabio per la precisazione.
per ritornare alla situazione precedente devo solo rimuovere lo script di beryl da /etc/init.d/ ?
No
Perchè devi togliere anche i link nei vari /etc/rc*
Se non mi sbaglio dovresti fare così
togli lo script /etc/init.d
e poi usi
sudo update-rc.d remove
comunque dai una letta al manuale (man update-rc.d)
ciao
Ciao
forse dovresti aggiungere che lo script da lanciare deve prevedere una struttura di questo tipo:
case “$1″ in
start)
# codice da eseguire quando lanci lo script
;;
stop)
# codice da eseguire quando fermi lo script (anche niente)
;;
*)
# in caso sia lanciato senza parametri
;;
esac
Ciao.
E se invece voglio eseguire uno script alla _chiusura_ di ubuntu?
Spero di non essere OT.
Grazie
no tranquillo.. sinceramente non ti so aiutare, ma se qualcuno ha qualche idea, posti pure
non è più semplice mettere il nome dello script su /etc/rc.local? Così parte quando tutto è già avviato…
@ ugaciaka: si.. occhio ai permessi però
Grazie mille… utilissima guidina… sono riuscito nel mio intento…
Beati voi… Io da bestiale principiante non so proprio come fare…
se hai bisogno di aiuto, basta chiedere. Ci sentiamo via mail, senza problemi.
Mi sa che ho proprio bisogno di aiuto Bax… Ma non ho la tua email.
Se la mail che hai inserito per inserire i commenti è corretta, ti dovrebbe essere arrivata una mia mail..
Email ricevuta… Risposta inviata. Grazie Bax
ottimo grazie
per tornare alla situazione di prima basta fare
sudo rm /etc/init.d/nomescript.sh
sudo update-rc.d remove
ovviamente non mettete le
Ma come mai mi dice che non ho i permessi sufficienti per salvare il file nella cartella init.d???
hai fatto il tutto da sudo o su??