2011-12-01 3 views
45

Voglio eseguire alcuni programmi Java in background quando il sistema si avvia in Ubuntu. Ho provato ad aggiungere uno script nella directory /etc/init.d ma non sono riuscito ad avviare un programma. i programmi i.e non sono avviati. Cosa dovrei fare per quello?Come eseguire uno script all'avvio di Ubuntu?

+1

Dovrebbe essere spostato su http://askubuntu.com/ –

+1

o passare al superutente –

risposta

69

Prima di tutto, il modo più semplice per eseguire le operazioni all'avvio è aggiungerle al file /etc/rc.local.

Un altro modo semplice è utilizzare @reboot nel proprio crontab. Leggi la manpage di cron per i dettagli.

Tuttavia, se si desidera eseguire le operazioni correttamente, oltre a aggiungere uno script a /etc/init.d, è necessario indicare a ubuntu quando è necessario eseguire lo script e con quali parametri. Questo viene fatto con il comando update-rc.d che crea un collegamento simbolico da alcune delle directory /etc/rc* allo script. Quindi, avresti bisogno di fare qualcosa di simile:

update-rc.d yourscriptname start 2 

Tuttavia, veri e propri script di init dovrebbe essere in grado di gestire una varietà di opzioni della riga di comando ed al contrario di integrare il processo di avvio. Il file /etc/init.d/README ha alcuni dettagli e ulteriori puntatori.

+0

Ma dove dovrebbe essere inserito il mio file java? Ho creato un semplice programma java con loop infinito. quindi il comando javac e java metti in /etc/rc.local, quindi riavvio il sistema ma il programma non è in esecuzione. Cosa fare? –

+0

Grazie al fatto. Ho creato un servizio in /etc/init.d e poi ho avviato il servizio in rc.local. –

+0

'rc-update' non esiste in Ubuntu. Usa 'update-rc.d start | stop NN runlevel [runlevel]' invece. Sostituisci '' con il nome dello script, 'NN' con l'ordine in cui viene eseguito lo script (all'interno del runlevel specificato). Vedi http://en.wikipedia.org/wiki/Runlevel#Debian_Linux per maggiori informazioni sui livelli di esecuzione in Ubuntu/Debian –