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: