Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Le porte dell'inferno e del paradiso sono vicine e identiche, verdi e bellissime.

Akis Kazantzantz 

Sondaggio:

A tuo giudizio, riaprire le "casechiuse" ?...

Un modo per combattere la criminalit?
Un insulto alle donne
Una cosa da fare al pi? presto
L'ennesima stupidaggine di questo governo
Una cosa che non mi interessa

visualizza risultati


 

Cosa sta succedendo veramente?

È importante capire che il controllo dei job viene fatto dalla shell. Non esiste nel sistema un programma fg; piuttosto fg, bg, &, jobs e kill sono tutti comandi interni alla shell (qualche volta kill è un programma indipendente, ma la shell bash usata da Linux ce l'ha interno). Questo è un modo logico di procedere: siccome ogni utente ha il proprio spazio per il controllo dei job, e ogni utente ha già la sua shell, è più semplice far controllare i job dell'utente alla shell. Quindi, ogni numero di job di un utente si riferisce soltanto a quell'utente: il mio job numero [1] e il tuo job numero [1] sono due processi totalmente differenti. In effetti, se siete loggati più di una volta, ogni vostra shell avrà dati diversi per controllare i job, così ogni utente può avere due job diversi con lo stesso numero in due shell diverse.

Il modo per riferirsi in modo sicuro ad un processo è mediante il numero di identificazione di processo, o Process ID (PID). Questo numero viene assegnato dal sistema: ogni processo ha un PID univoco. Due utenti diversi possono riferirsi ad un processo mediante il suo PID e sapere che si stanno riferendo allo stesso processo (assumendo che siano loggati nella stessa macchina!).

Diamo un'occhiata ad un altro comando per capire cosa sono i PID. Il comando ps elenca tutti i processi in esecuzione, compresa la vostra shell. Provate. Ha anche alcune opzioni: le più importanti (secondo molti) sono a, u e x. L'opzione a elencherà i processi di tutti gli utenti, non solo i vostri. L'opzione x mostrerà i processi che non hanno un terminale associato (principalmente sono programmi di sistema che non comunicano con l'utente attraverso la tastiera). Infine, l'opzione u dà ulteriori informazioni sui processi, che spesso sono utili.

Per avere davvero un'idea di cosa sta facendo il sistema, mettete insieme tutte le opzioni: ps -aux. Potete vedere i processi che usano più memoria guardando la colonna %MEM, e più tempo di CPU sulla colonna %CPU (la colonna TIME elenca il tempo totale di CPU usato).

Un'altra nota veloce sui PID. kill, oltre ad accettare le opzioni nella forma %numero-job, accetta direttamente anche i PID. Così, mettete yes > /dev/null in background, eseguite ps e cercate yes. Quindi digitate kill PID (in genere è più semplice eliminare il processo tramite il numero di job invece che con il PID).

Se iniziate a programmare in C nel vostro sistema Linux, imparerete che il controllo dei job della shell è soltanto una versione interattiva delle chiamate fork e execl. È troppo complesso da vedere qui, ma potrebbe essere utile ricordarlo più avanti quando dovrete programmare e vorrete eseguire processi multipli di un singolo programma.

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2019 Cataldo Sasso