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
