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


Rispondere a