next up previous contents
suivant: Obtenir la liste des monter: Multi-niveau (Job control) précédent: Multi-niveau (Job control)   Table des matières

Concept de processus et de job

Un processus est un environnement d'exécution où, usuellement, un programme (commande, application, shell, ...) s'exécute. Cet environnement comprend des variables d'état et de choix. Du point de vue de l'utilisateur, plusieurs processus peuvent s'exécuter à un moment donné de façon concurrente. Ils peuvent aussi échanger des données. Par exemple,

ls -laR | wc -l
crée deux processus, un premier listant tous les fichiers de tous les sous-répertoires du répertoire courant, et un second recevant la liste du premier (via un pipe, une connexion entre la sortie d'une commande et l'entrée d'une autre (en remplacement du clavier), connexion représentée par une barre verticale) qui compte le nombre de lignes. Dans ce cas, même si pour l'utilisateur les processus monopolisent le terminal (il ne peut rien faire d'autre), il s'agit réellement de processus indépendants du shell initial. D'ailleurs on verra dans la section [*] comment rendre la main au shell initial en stoppant puis détachant en arrière-plan les processus.

Un job est un processus un peu particulier, en ce sens qu'il a des relations privilégiées avec son processus père, souvent un shell. De plus, un processus est identifié par un numéro unique dans tout le système, alors qu'un job se voit donner en plus un numéro de job unique pour le shell courant. On se référera en général dans les commandes à un processus par son simple numéro, et à un job par un pourcent suivi de son numéro, par exemple kill %1 détruit le job numéro 1. Des valeurs spéciales sont définies, par exemple kill % tue le processus manipulé ou créé en dernier.


next up previous contents
suivant: Obtenir la liste des monter: Multi-niveau (Job control) précédent: Multi-niveau (Job control)   Table des matières
Marc SCHAEFER 2003-03-01