[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: help!!! autoexec.bat---file spec



(avevo risposto via news ma il gateway è unidirezionale, quindi rifo)

On Tue, 14 Aug 2001 14:27:38, giorgio <bunat@libero.it> wrote:
> Esiste per linux la possibilità di fare un file tipo autoexec.bat per
> dos?
Sì.
Funziona così:

1) sotto UNIX l'insieme di servizi che devono girare è definito dai
   "runlevel".

2) i runlevel di default sono questi:
	0 - disattivazione del sistema operativo
	1 - modalità "singolo utente"
	2 - modalità standard (sotto debian)
	3 - modalità standard + eventuale server NFS
	5 - disattivazione del sistema operativo e spegnimento
	    della macchina
	6 - reboot

3) le azioni da intraprendere per raggiungere un certo runlevel,
   diciamo "X", sono definite dall'insieme di script contenuti in
   /etc/rcX.d (ove X è il numero di runlevel).

4) quando il sistema deve portarsi a runlevel X esegue tutti gli script
   contenuti in /etc/rcX.d il cui nome inizia con S o K seguiti da 2
   cifre (S15pippo K42pluto ecc). Gli script vengono eseguiti nell'ordine
   in cui compaiono facendo "ls".
   Senza approfondire: gli script il cui nome inizia con S startano i
   servizi, quelli con K li fermano.

5) tutti questi script sono in realtà link agli script che stanno in
   /etc/init.d . TUTTI gli script di attivazione/disattivazione dei
   servizi sono in /etc/init.d.

6) quindi se hai dei comandi che vuoi che vengano eseguiti all'avvio
   devi metterli in uno script (diciamo /etc/init.d/rc.local), e poi
   creare un link a quest'ultimo nella directory /etc/rc2.d.

Esempio pratico, (da eseguire come root):

1) echo /usr/bin/touch /tmp/pippo >/etc/init.d/rc.local
2) chmod 755 /etc/init.d/rc.local
3) ln -s /etc/init.d/rc.local /etc/rc2.d/S99rc.local

Spiegazione: 1) si crea lo script. quando eseguito, lo script crea in
/tmp un file vuoto di nome pippo. Se il file esiste già ne aggiorna il
"timestamp" (la data, visibile con "ls -l").
2) si rende "eseguibile" lo script (si cambiano i permessi associati al
file script)
3) si crea il link in /etc/rc2.d

A questo punto, sempre come root, dai il comando
 init 1 (cioè dici al sistema di portarsi a runlevel 1)
cancella, se esistesse, il file /tmp/pippo
 rm /tmp/pippo
e riporta il sistema a runlevel 2
 init 2
a questo punto il tuo script dovrebbe essere stato eseguito.
Per averne conferma verifica che esista /tmp/pippo:
ls -l /tmp/pippo

Scusa la pappardella ma il sistema, come vedi, è un po' più complesso di
autoexec.bat :)

Per capire bene come funziona, ed anche per iniziare ad imparare il
linguaggio di programmazione della shell (con cui si fa l'equivalente dei
file .bat), potresti volerti leggere lo script /etc/init.d/rc . E` lui
che si occupa di eseguire tutti gli altri script di cui sopra.

Ciao,
/dev/null



Reply to: