linux user group brescia

immagine del castello

Archivio della mailing list

domanda scema ...

Maurizio Paolini paolini a dmf.bs.unicatt.it
Ven 7 Lug 2000 04:33:15 UTC
> Ho uno script che pfa partire una roba in python ... vorrei capire:
>
> 1 - come impedirele di bloccarmi la shell finchè non premo ctrl+c.

Qualunque programma, ivi compresi gli script di shell, possono
essere lanciati in "background", cioe' senza bloccare il terminale
in attesa che finiscano:

$ mioscript &

[e' appunto il carattere "&" finale a segnalare alla shell con cui
 stai lavorando il desiderio di lanciare il comando in background]

In alternativa, se il comando e' gia stato lanciato con

$ mioscript

e' possibile metterlo in background con la sequenza:

^Z   [control-Z]
$ bg

il carattere ^Z provoca la "sospensione" del processo "mioscript", che
quindi si ferma, ma non viene abortito; il successivo comando "bg" 
fa ripartire il processo in "background".  Invece il comando "fg" 
riattiva il processo in "foreground", cioe' bloccando la shell.

Attenzione pero' agli "standard-input" e "standard-output"; questi
finiscono comunque sul terminale da cui e' stato lanciato il comando.
E' buona norma redirigere in particolare lo "standard-output" su 
file, come in:

$ mioscript >messaggi.txt &

e poi c'e' lo "standard-error" di cui tenere conto.

> 2 - come farla partire in automatico all'avvio della macchina.

Qui si tratta di aggiungere qualcosa negli "script" che vengono
eseguiti al boot.  La struttura di questi dipende dalla distribuzione,
anche se poi in realta' si somigliano molto.  Ad esempio per la "redhat"
un posto adatto per mettere comandi da eseguire al boot e' 

/etc/rc.d/rc.local

Oppure e' anche molto elegante aggiungere uno script in /etc/rc.d/init.d/
e "symlinkarlo" da (ad esempio) /etc/rc.d/rc3.d/Sxxmioscript, dove qui
il "3" si riferisce al "runlevel" di default, di solito 3 o 5, si
veda quello che c'e' in /etc/inittab.  Per fare
le cose bene conviene imitare la struttura degli altri script che si
trovano in /etc/rc.d/...

Conviene tenere conto che in situazioni "disperate" puo' essere
necessario accendere la macchina in modalita' "single-user" 
(runlevel 1), dando il parametro "single" al prompt di LILO.
E' fortemente consigliabile quindi evitare che vengano eseguiti
nel runlevel 1 degli script che possano dipendere da risorse che
possono non essere disponibili (rete attiva, partizioni particolari, ecc.).

NOTA: mettere le mani in file come "rc.system" o uno dei files gia
inclusi in /etc/rc.d/init.d comporta il rischio di perdere le modifiche
fatte al primo aggiornamento del sistema.  Invece il file "rc.local"
e' fatto apposta per le personalizzazioni, e non viene toccato dagli
aggiornamenti.

mp




Maggiori informazioni sulla lista Lug