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

On Tue, 14 Aug 2001 14:27:38, giorgio <[EMAIL PROTECTED]> 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


Rispondere a