[Linux]Gestione dei processi

« Older   Newer »
  Share  
Brutus Wolf
CAT_IMG Posted on 1/4/2011, 14:24




Esame dei processi


Si possono esaminare i processi in esecuzione sul sistema con il comando ps.


Il comando ps senza argomenti fornisce l’elenco dei processi associati al tty attivo. Visualizza il PID, cioè l’id del processo (Process Identifier), il TTY cioè l’identificativo del terminale, il tempo di CPU usato e il comando in fase di esecuzione.



Il PID è un numero di 32 bit che identifica il processo.


Le principali opzioni del comando ps sono:


-U elenco-UID dà l’elenco dei processi associati agli ID utente elencati

-u  elenco-nomi-utente dà l’elenco dei processi associati ai nomi utente elencati

-t dà l’elenco dei processi relativi al terminale in uso

-a ritorna tutti i processi attivi escludendo i demoni

-A ritorna tutti i processi attivi (anche i demoni)


-l produce un output più dettagliato


<p>Ecco una schermata di un terminale dove è stato lanciato il comando ps -l



Analizziamo nel dettaglio i campi restituiti da questo comando


<blockquote>

ADDR indirizzo del processo

C utilizzo del processore per lo scheduling


CMD nome del comando

F flag associato al comando

NI valore nice

PID Id del processo

PPID id del processo genitore

PRI priorità del processo

S stato del processo

STIME ora di avvio del processo

TIME tempo di esecuzione


TTY terminale associato

UID id del proprietario

WCHAN evento per cui il processo è in attesa


Il comando top visualizza i processi in corso come ps ma aggiorna la situazione in tempo reale, fornendo anche informazioni aggiuntive sull’attività del processore.



Gestione dei servizi


I servizi sono processi che svolgono funzioni di servizio per gli altri processi; di solito si tratta di demoni che restano in background in attesa di richieste.


Esempi di servizi sono i programmi per la gestione dello spool di stampa e della registrazione dei log. Alcuni servizi vengono lanciati automaticamente all’avvio del sistema. Si possono attivare o disattivare manualmente per mezzo di script che di solito si trovano in /etc/rc.d/init.d o /etc/init.d o /sbin/init.d a seconda della propria distribuzione; ogni file in queste directory è uno script che serve ad avviare o arrestare un servizio; si può capire di cosa si tratta grazie a dei commenti che si trovano all’inizio di questi file.



Tutti gli script accettano gli argomenti start o stop per avviare o fermare il servizio indicato:


/etc/rd.d/init.d/lpd start

/etc/rc.d/init.d/lpd stop


Esecuzione di lavori in background


Per mandare un job in background basta aggiungere in fondo alla riga di comando il simbolo &.

La shell restituisce il numero del job e l’ID del processo (PID) . Il PID è assegnato dal sistema  e identifica univocamente un processo, mentre il job number è assegnato falla shell e numera progressivamente i processi attivi eseguiti in una istanza di lavoro.



Se il job in background non richiede input continua l’esecuzione fino al termine, altrimenti passa in stato di attesa e viene visualizzato un avviso.

Se un lavoro viene avviato in foregound si può sospendere con comando Ctrl+z, detto tasto di sospensione. Usando il comando bg si fa riprendere l’esecuzione del comando in background . Ecco un’esempio pratico :



Per finire ecco i principali comandi per la gestione dei job in background:



fg %­numero sposta in foreground il job indicato

fg senza argomenti sposta in foreground il job corrente

wait %­numero sospende l’esecuzione della shell finche il job specificato non è stato completato

wait senza argomenti aspetta finche tutti i job in background non sono completi

jobs -p %­numero restituisce ilo PID del processo



FONTE : link
 
Top
stefyga96
CAT_IMG Posted on 1/4/2011, 16:13




Complimenti bella guida :D
 
Top
1 replies since 1/4/2011, 14:24   24 views
  Share