From: "Davide" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, August 08, 2000 3:07 PM Subject: [newbie-it] avviare applicazioni al boot > Vorrei far partire direttamente al boot wwwoffle. Per farlo partire io do > da shell: > > wwwoffled -c wwwoffle.conf > > Come posso fare per far sì che questo sia una cosa automatica? Si possono > aggiungere script in /etc/rc.d/init.d? Come? Certo, ed è il sistema migliore. Va però capito bene. Due parole di spiegazione penso possano essere utili. NotaBene: Mandrake per gli init scripts usa lo stile SystemV (+/-), altre distribuzioni possono usare sistemi diversi o leggermente modificati. La cosa funziona così: in /etc/rc.d/init.d deve trovarsi uno script file, il cui nome è associato al processo che deve far partire (non è obbligatorio, ma utile :) ). Tale script deve accettare in ingresso almeno i comandi start e stop (può accettarne altri, come restart,status, ecc...). Il suo compito è far partire in modo "pulito" il processo, ossia controllare che esista, che sia configurato se necessario, scrivere in /var/run/ (credo la directory sia questa) un file in cui si riporta il pid del processo, etc... e naturalmente di "terminarlo" in modo corretto. Tale script può essere lanciato a mano (es: /etc/rc.d/init.d/httpd start), ma solitamente viene lanciato al boot dall'init system. Premessa: l'init system può far partire la macchina in diversi "runlevels", ongnuno con un particolare set di processi attivati. Non ricordo mai i numeri, ma runlevel 3 può voler dire "tutti i servizi, modalità a carattere", runlevel 4 "xwindow attivo" (per inciso, è qui che va a finire il settaggio che viene chiesto all'installazione, "vuoi far partire xwindow al boot?"). Runlevel 1 ad esempio è il "single user mode", utile per la manutenzione, con il minimo "sindacale" di servizi attivi. Come si fa a far partire un servizio ad un certo runlevel? Ad esempio: vorrei che httpd partisse a runlevel 3 ma non in runlevel 1. Basta mettere nelle directory rcX.d (dove X è il runlevel desiderato) un link allo script che si trova in init.d. Il link deve essere fatto così: SXXhttpd -> init.d/httpd. S vuol dire : lancia lo script httpd con l'opzione start, ossia fa partire il servizio; XX indica il numero d'ordine: gli script vengono eseguiti dal numero più basso a quello più alto. Se mettete K al posto di S il demone viene fermato (lo script viene lanciato con l'opzione stop). Naturamente devo prevedere anche lo stop, quando si esce dal runlevel. Comunque un'occhiata allae suddette directories spiegherà molte cose. Operativamente come faccio a mettere un nuovo script? la cosa migliore è entrare in /etc/rc.d/init.d, copiare uno degli scripts presenti con il nuovo nome ed editarlo per far partire il proprio processo. (comincerei con uno script semplice :) ) si prova a mano se parte (./nomescript start) e se si ferma (./nomescript stop); una volta che funziona si crea il link come detto sopra nelle varie rcX.d e si fa un reboot, incrociando le dita :) Si può intervenire sugli init scripts anche con tool grafici, in mdrake uno o due ce ne sono, ma a memoria non ti so dire in quale menu trovarli. Se hai difficoltà avvisa... -- Fabio Coatti Ferrara Linux Users Group