Cours GNU/Linux: Gestion des processus

Operating Systems · notes

Voir tous les documents en systèmes d'exploitation et cloud

MP2L

Cours GNU/Linux

Chapitre 6 : Gestion des

processus

1. Notion de processus

Un programme est la traduction d'un algorithme crit l'aide d'un langage de programmation.

Il est compil ensuite li pour produire, sur disque, un binaire ex cutable. (de nom g n rique

a.out). Il s'agit d'une entit (s quence de code et s'appliquant sur des donn es) qui est statique.

Un processus est une entit qui donne une id e sur la fa on avec laquelle volue l'ex cution

du programme par le processeur. C'est une entit dynamique qui volue en fonction du

temps. On pourrait le d finir comme l'ensemble constitu du programme ex cutable (avec ses

donn es) et d'un contexte d'ex cution (informations indispensables au noyau du syst me

d'exploitation, telles que la valeur du compteur ordinal, la pile, etc.)

L'ensemble de ces informations constitue le bloc de contr le du processus (Process Control

Block)

Le syst me GNU/Linux emploie un processus particulier, l'ordonnanceur (scheduler), pour

pouvoir allouer le processeur aux diff rents processus pr sents en m moire. L'ordonnanceur

du processeur sous GNU/Linux est bas sur l'attribution d'une priorit dynamique et le recours

au tourniquet (round robin) pour arbitrer les conflits entre les processus ayant une m me

priorit . De cette fa on, tous les processus seront servis.

Le syst me GNU/Linux distingue essentiellement deux types de processus:

Les processus syst me:

De tels processus ne sont pas lanc s partir de terminaux et sont la propri t du super-

utilisateur : Les processus d mons (daemons). Ces processus assurent un certain nombre

de services pour les utilisateurs (locaux ou distants) du syst me. Ces processus ont, par

d faut, la racine absolue du syst me de fichier comme r pertoire de travail. On distingue

les processus:

init : il sert initialiser le syst me. Il doit s'assurer que sur chaque terminal re-

li au syst me s'ex cute un processus permettant un utilisateur de se connecter au

syst me (processus getty). Il g re aussi le probl me de processus orphelins (cas

des processus zombis). Le processus init a comme identificateur la valeur 1 et c'est

le processus parent de tous les processus shells cr s par les utilisateurs lors de

leurs connexions au syst me.

Yahia SLIMANI/Habib SMEI

  • Page 1 -

MP2L

Cours GNU/Linux

cron : c'est un processus dont le r le est de lancer des dates pr cises des com-

mandes particuli res. Les utilisateurs peuvent exploiter ce processus pour pro-

grammer des t ches en diff r (batch).

inetd (xinetd sous Linux) : il s'agit d'un super-d mon. Son r le est de contr -

ler les principaux services r seau (telnet, ftp, rlogin, etc.). Il permet de cr er un

processus satisfaisant la requ te correspondante.

Les processus utilisateur:

Ces processus ex cutent une t che d di e et ont une dur e de vie assez limit e.

De tels processus sont cr s d s la connexion d'un utilisateur au syst me. Typiquement ces

processus ex cuteront un interpr te de commandes (shell) qui analysera et cr era un processus

qui ex cutera la commande tap e partir de l'invite de commandes. D'autres moyens sont,

cependant, possibles tels que le recours d'autres processus (les diteurs par exemple) ou

partir d'applications qui effectueront des appels syst me de type fork.

Il faut noter que la plupart des processus utilisateur sont sous le contr le d'un terminal (lanc s

partir d'un terminal de contr le).

Par ailleurs, le syst me GNU/Linux distingue deux modes pour l'ex cution des processus:

Le mode utilisateur:

C'est le mode qui ne permet un processus que d'acc der qu' son propre espace d'adressage

qui lui a t allou par le syst me et n'ex cute que les instructions du programme sous-jacent

(le programme correspondant au processus).

Le mode noyau:

Dans ce mode, un processus ex cute des instructions n'appartenant pas un programme sous-

jacent mais au noyau du syst me. Il est possible, galement, d'acc der des donn es ne

faisant pas partie de son propre espace d'adressage (les tables utilis es par GNU/Linux). Le

passage en mode noyau se r alise par le processus lui-m me par un appel syst me SVC

(SuperVisor Call) ou par interruption qui activera le traitant d'interruption (Interrupt Handler).

Notons, aussi, que sous GNU/Linux, les processus sont conformes aux principes de la

g n tique. En effet, sauf pour le processus anc tre commun, tout processus cr poss de un

parent duquel il h rite un certain nombre de caract ristiques. Tout processus cr est le

r sultat de l'appel syst me fork. Les principales caract ristiques des processus sont les

suivantes:

Identificateur du processus: PID (Process IDentifier): un entier naturel

Identificateur du processus parent: PPID (Parent Process IDentifier): un entier naturel

Propri taire: UID (User IDentifier) : un entier naturel

Groupe propri taire GID (Group IDentifier) : un entier naturel

Yahia SLIMANI/Habib SMEI

  • Page 2 -

MP2L

Cours GNU/Linux

Terminal de contr le ou d'attachement TTY,

Priorit ,

R pertoire de travail ,

etc.

2. La commande ps

La commande ps (process status) permet d'obtenir, si elle est ex cut e par un utilisateur

quelconque, la liste des processus avec ventuellement leurs caract ristiques. Avec les options

pass es la commande, l'utilisateur pourrait obtenir davantage de d tails sur les processus. Si

la commande est tap e sans param tres, elle affichera les informations suivantes:

q

q

q

q

Exemple

Le num ro du processus (PID)

Le num ro du terminal (TTY)

Le temps d'ex cution cumul (TIME) sous format hh:mm:ss

La commande correspondant au programme sous-jacent (COMMAND)

Sous le syst me Linux, un utilisateur qui vient de se connecter tape la commande ps:

$ ps

PID

1780

1763

Publicité

TTY

tty1

tty1

TIME

00:00:00

COMMAND (ou CMD)

ps

00:00:00

-bash

Remarquons ici que la valeur de TIME est 00:00:00 puisque le temps d'ex cution des

processus ps et bash sont plus petits qu'une seconde.

L'option l permet d'avoir davantage de d tails sur chaque processus:

Le num ro d'identification de l'utilisateur (UID)

L'identificateur du processus (PID)

L'identificateur du processus parent (PPID)

Le terminal de contr le (TTY) attach au processus, la valeur ? signifie que le proces-

sus n'est pas attach un terminal.

L' tat du processus (S): peut tre R (Running) i.e processus en cours ex cution ou S

(Sleeping) i.e processus endormi (attente d' v nement)

Priorit du processus (C / NI / PRI)

Adresse (ADDR) et taille (SZ) du processus

Cause de l'attente (WCHAN) si le processus est mis en sommeil

Soit l'exemple suivant ex cut par le super-utilisateur sur le terminal tty2 :

$ ps l

Yahia SLIMANI/Habib SMEI

  • Page 3 -

MP2L

Cours GNU/Linux

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

0 S 0 1115 1 0 72 0 - 580 wait4 tty2 0:0:00 login

0 S 0 1216 1115 0 77 0 - 638 wait4 tty2 0:0:00 bash

0 R 0 1262 1216 0 79 0 - 769 - tty2 0:0:00 ps l

On remarque sur cet l'exemple pr c dent, que le processus parent du processus qui ex cute la

commande login a comme PID la valeur 1 qui correspond au processus init. Le processus

ex cutant la commande bash a comme parent le processus ayant comme PID la valeur 1115

(login) et il est en m me temps parent du processus ps dont le PID est 1262.

3. Terminaison de processus

Chaque processus qui termine son ex cution n'aura plus besoin, en principe, de ressources. Il

faudrait donc liminer tout processus ayant termin son ex cution afin de lib rer les

diff rentes tables du syst me r f ren ant ces processus.

Un tat, de processus, tr s particulier sous GNU/Linux est l' tat zombie. Il correspond la

terminaison d'un processus par son p re. Ce dernier pourrait consulter les informations dont il

aura besoin pour savoir comment son fils s'est termin .

Chaque processus qui se termine aura un code de retour (exit status). Ce code de retour sera

utilis par le processus parent pour r cup rer les informations n cessaires sa progression.

Une valeur nulle, indique une terminaison normale du processus. Une valeur non nulle

indique une terminaison anormale.

Tout processus en cours d'ex cution pourrait recevoir de la part d'autres processus des

signaux. On pourrait, titre d'exemple, interrompre, l'aide de la touche ctlr c, l'ex cution du

processus ls qui affiche le contenu d'un r pertoire. Dans ce cas, le terminal envoie un signal

particulier interpr t par le shell au processus ex cutant la commande ls. Un tel signal est

repr sent g n riquement par SIGINT. Le syst me GNU/Linux d finit plusieurs signaux qui

pourraient tre envoy s aux processus au cours de leur ex cution.

Si un processus est en ex cution et il re oit un signal de type SIGINT (interrupt) ou SIGQUIT

(Quit) il sera mis imm diatement l' tat zombie. Si le signal re u est SIGQUIT, une image du

processus ( sa terminaison) sera copi e sur disque et pour nom core et un message core

dumped sera affich .

Certains types de processus ignorent l'interpr tation de quelques types de signaux (notamment

SIGINT, SIGQUIT). Un exemple typique de tels processus celui associ un interpr te de

commandes.

Yahia SLIMANI/Habib SMEI

  • Page 4 -

MP2L

Cours GNU/Linux

GNU/Linux offre un moyen pour envoyer manuellement des signaux un ou plusieurs

processus. Il met a disposition des utilisateurs la commande kill. Sa syntaxe est la suivante:

kill signal PID

4. La redirection des entr es-sorties

Le syst me GNU/Linux d finit trois fichiers logiques conventionnels qui seront utilis s par

tous les processus. Le fichier entr e standard (standard input), le fichier sortie standard

(standard output) et le fichier erreur standard (standard error).

Lorsqu'un utilisateur se connecte au syst me, ce dernier fait l'association entre ces deux

fichiers logiques (fichiers standards) et le terminal de l'utilisateur. Ainsi, le fichier entr e

standard sera affect au clavier du terminal et le fichier sortie standard est affect son cran.

Le syst me repr sente, par des entiers, chaque fichier standard dans la table de descripteurs

de fichiers utilis e par chaque processus. Le fichier entr e standard a comme num ro d'index

dans cette table la valeur 0 (premier l ment de la table). Le fichier sortie standard a la valeur

1 (deuxi me l ment de la table). Le fichier erreur standard est le troisi me l ment de la

table et a, par cons quent, comme descripteur la valeur 2. Le fichier erreur standard est

associ , comme la sortie standard, l' cran du terminal.

Entr e standard

Sortie standard

Erreur standard

Ce sch ma pourrait tre modifi de sorte que l'entr e, la sortie et l'erreur standard perdent

leurs valeurs habituelles (leurs associations par d faut). Il devient donc possible, pour un

processus donn , d'accepter ses donn es d'entr e non plus de l'entr e standard qui, pour les

processus shell et leurs descendants, est associ e au clavier du terminal mais partir d'un

autre emplacement tel qu'un fichier disque classique. Le m me raisonnement peut s'appliquer

la sortie standard qui pourrait tre remplac e par un autre fichier (disque ou autre).

Redirection de l'entr e standard

Pour rediriger l'entr e standard d'un processus, il suffit de taper, sur la ligne de commande, le

nom de la commande associ e au processus suivie du caract re sp cial '<' et une r f rence

un fichier comme illustr par la syntaxe suivante:

$ commande < r f rence_fichier

Le processus associ commande ne lit plus ses donn es partir de l'entr e standard mais

partir du fichier d sign par r f rence_fichier. noter que l'op ration de redirection de

l'entr e standard n'est possible que si le fichier r f rence_fichier est accessible par

l'utilisateur.

Yahia SLIMANI/Habib SMEI

  • Page 5 -

MP2L

Exemple

Publicité

$ wc < liste

3 8 26

Cours GNU/Linux

L'exemple montre la redirection de l'entr e standard. La commande wc (word count) ne lit

plus ses donn es partir de l'entr e standard mais partir du fichier liste

Redirection de la sortie standard

Le principe de la redirection de la sortie standard est analogue celui de l'entr e standard. Le

r sultat du processus relatif la commande ex cut e depuis le shell interactif ne sera plus

affich sur la sortie standard (typiquement l' cran du terminal) mais envoy vers un autre

fichier. La redirection de la sortie standard prend la forme suivante:

$ commande > r f rence_fichier

Comme dans le cas de la redirection de l'entr e standard, il faut que l'utilisateur aie le droit

d' criture sur le fichier r f rence_fichier. Ici deux possibilit s sont voquer: soit que le

fichier r f rence_fichier n'existe pas et dans ce cas il sera cr . Si le fichier r f rence_fichier

existe alors, et selon le shell utilis , il peut tre, ou non, cras par le processus relatif

commande.

Par ailleurs, le syst me offre une deuxi me forme de redirection de la standard: la redirection

en mode ajout (append) en fin de fichier. Un tel type de redirection aura la forme:

$ commande >> r f rence_fichier

Avec cette forme, si le fichier r f rence_fichier n'existe pas il sera cr . S'il existe, le

processus relatif commande ouvrera le fichier r f rence_fichier en mode append et y crira

ses r sultats sa fin.

Exemples

$ date > DATE_DU_JOUR

$ cat < DATE_DU_JOUR

Lun f v 18 15:36:48 CET 2002

$ pwd >> DATE_DU_JOUR

$ cat < DATE_DU_JOUR

Lun f v 18 15:36:48 CET 2002

/home/foulen

Redirection de l'erreur standard

On suppose que sur le r pertoire priv de l'utilisateur foulen i.e. /home/foulen, il existe un

fichier liste et un r pertoire Desktop. Essayons de prendre l'exemple suivant et de l'analyser:

$ ls ld liste Desktop LISTE > Liste_Fichiers

ls: LISTE : Aucun fichier ou r pertoire de ce type

Yahia SLIMANI/Habib SMEI

  • Page 6 -

MP2L

$ cat Liste_Fichiers

Cours GNU/Linux

drw xr-x r-x

3

-rwx- - - - - - 1

foulen

foulen

foulen

foulen

4096 f v 1 23:36 Desktop/

107

f v 5 23:08

liste

Le fichier LISTE n' tant pas existant dans le r pertoire de travail, le syst me va g n rer un

message d'erreur concernant uniquement le fichier LISTE, par contre pour les deux autres

fichiers, la commande ls ld a t redirig e vers le fichier Liste_Fichiers.

Avec des interpr tes de commandes comme le Bourne Shell ou le Korn Shell, il est possible

de rediriger l'erreur standard s par ment.

$ ls ld liste Desktop LISTE 2>Erreurs >Liste_Fichiers

$ cat Liste_Fichiers

drw xr-x r-x

3

-rwx- - - - - - 1

$ cat <Erreurs

foulen

foulen

foulen

foulen

4096 f v 1 23:36 Desktop/

107

f v 5 23:08

liste

ls: LISTE : Aucun fichier ou r pertoire de ce type

Dans l'exemple pr c dent, nous avons montr comment on pourrait rediriger la sortie erreur

standard vers un autre fichier en utilisant la syntaxe 2 > Nom_Fichier

5. Encha nement de processus (gestion des jobs)

Le shell utilis le plus fr quemment sur les syst mes GNU/Linux, bash, propose un syst me

de contr le des jobs. Un job correspond une t che demand e par l'utilisateur. Cette t che

peut tre compos e de plusieurs processus. Ce qui les regroupe est un tube. Un job est donc

un regroupement de plusieurs commandes devant s'ex cuter les unes la suite des autres en

communiquant leurs r sultats.

Un exemple tout simple de job pourrait tre le suivant :

$ ls | less

ls permet de lister les fichiers. Mais quand ils sont trop nombreux, la consultation est difficile.

less permet alors de paginer ce qui lui est pass sur son entr e standard et de naviguer

facilement l'aide des touches fl ch es.

Il faut bien voir que lorsque ceci aura t tap , 2 processus seront cr s. Un pour ex cuter ls et

l'autre pour less. Mais bash fournit une abstraction permettant de manipuler ceci comme un

tout, appel e donc job.

Mais un job pourrait tout aussi bien tre constitu d'une seule commande sans utilisation de

tube. L'utilisation de ls uniquement constituerait aussi le lancement d'un job.

Yahia SLIMANI/Habib SMEI

  • Page 7 -

MP2L

Cours GNU/Linux

La commande int gr e bash permettant de les lister s'appelle jobs. La lancer dans un shell

ne produira aucun r sultat normalement.

Le syst me GNU/Linux permet aussi aux utilisateurs de lancer l'ex cution de plusieurs processus

(jobs) en m me temps. L'ex cution peut se faire de mani re ind pendante en s quence ou en parall le.

Dans le premier mode d'ex cution, les processus sont ex cut s en s quence et ind pendamment les

uns des autres.

Exemple

La commande suivante produira, dans l'ordre, les r sultats:

$ ls ld ; cat liste; echo Fin du traitement

Publicité

drw xr-x r-x

-rwx- - - - - -

3

1

foulen

foulen

foulen

foulen

4096

f v 1 23:36

Desktop/

107

f v 5 23:08

liste

Liste des ouvrages:

La Programmation sous UNIX

The C programming language

Manuel en ligne d'UNIX (man)

Fin du traitement

Pour rediriger la sortie standard d'une commande compos e, il suffit de parenth s r l'ensemble comme

illustr par l'exemple suivant:

$ (ls ld ; cat liste; echo Fin du traitement) > Resultat

$ cat < Resultat

drw xr-x r-x

-rwx- - - - - -

3

1

Liste des ouvrages:

foulen

foulen

foulen

foulen

4096

f v 1 23:36

Desktop/

107

f v 5 23:08

liste

La Programmation sous UNIX

The C programming language

Manuel en ligne d'UNIX (man)

Fin du traitement

Notons qu'avec ce m canisme d'encha nement, une commande n'est lanc e que si celle qui la pr c de

s'est termin e. Ceci veut dire qu'il n'y a pas de communication entre les diff rents processus relatifs

l'ensemble de commandes constituant la commande compos e. Ceci n'emp che, qu'il est possible, via

le m canisme de redirection, de cr er une sorte de communication entre les commandes. Voyons

l'exemple suivant:

$ ls > FICHIERS ; wc l < FICHIERS; rm FICHIERS

Cette m thode n'est pas commode; car elle n cessite chaque fois, l'utilisation d'un ou de plusieurs

fichiers temporaires et puis leur suppression.

Comme alternative, GNU/Linux offre un m canisme de communication qui permet aux processus de

s'ex cuter simultan ment (i.e en parall le) et d' changer ainsi des informations (d pendance entre les

processus): c'est le principe de la communication par tube. Un tube (pipe) est une entit temporaire

Yahia SLIMANI/Habib SMEI

  • Page 8 -

MP2L

Cours GNU/Linux

qui servira mettre en communication deux processus: l'un se comporte comme processus crivain

dans le tube et l'autre comme processus lecteur.

Ainsi la sortie standard du processus crivain est redirig e vers l'entr e du tube et l'entr e standard du

processus lecteur est redirig e vers la sortie du tube. De cette fa on, les r sultats produits par le

processus crivain seront consid r s comme donn es au processus lecteur. On pourrait mettre

plusieurs tubes en cascade; en effet, un processus pourrait se comporter comme lecteur et crivain la

fois. La syntaxe d'utilisation d'un tel m canisme est la suivante:

commande1 commande2 & commanden

Exemple

$ ls l wc -l

Cette commande cr e deux processus concurrents (concurrence sur les ressources du syst me,

notamment le processeur). Un tube sera cr pour que le processus associ la commande ls l crive

ses r sultats dans l'entr e du tube. Le deuxi me processus (associ la commande wc l) extraira ces

donn es (non plus de l'entr e standard ou d'un fichier classique) partir de la sortie du tube. Quand le

processus crivain (ls l) se termine et que le processus lecteur (wc l) a termin sa lecture, le tube

sera vide et une fin de fichier sera d tect e par le processus lecteur qui provoquera sa terminaison

normale.

Le syst me doit veiller la bonne synchronisation des processus. En effet, il doit:

q bloquer le processus lecteur si le tube est vide (attente qu'il se remplisse)

q bloquer le processus crivain si le tube est plein (cas d'un processus lecteur plus lent qu l' crivain)

L'exemple suivant met en vidence l'existence des trois processus correspondant aux commandes: ps,

tee et wc :

$ ps tee RESULTATS wc l

PID

641

653

654

655

5

TTY

tty1

tty1

tty1

tty1

$ cat < RESULTATS

PID

641

653

654

655

TTY

tty1

tty1

tty1

tty1

Publicité

TIME

00:00:00

00:00:00

00:00:00

00:00:00

TIME

00:00:00

00:00:00

00:00:00

00:00:00

COMMAND (ou CMD)

-bash

ps

tee

wc

COMMAND (ou CMD)

-bash

ps

tee

wc

La commande tee, tr s particuli re, peut tre ins r e pour stocker le r sultat de la commande

qui la pr c de dans des tubes en cascade.

Yahia SLIMANI/Habib SMEI

  • Page 9 -

MP2L

Cours GNU/Linux

Il est possible de lancer un job en arri re-plan. Cela permet alors de pouvoir continuer

utiliser le shell pour d'autres t ches pendant qu'il s'ex cute. Emacs est un diteur de texte tr s

utilis (notamment pour faire ce site). Si dans une console au sein d'un environnement

graphique on le lance en tapant son nom, une fen tre Emacs va s'ouvrir par d faut. Mais la

console ne sera plus utilisable car le shell attendra la fin de l'ex cution de l' diteur avant de

laisser nouveau la possibilit de lancer des commandes. Pour pouvoir donc lancer ce logiciel

par exemple, il faut rajouter le symbole & (lire esperluette ou ET commercial) la fin de la

d finition de la t che. Pour cet exemple :

$ emacs &

[1] 6373

La premi re valeur est le num ro du job. Celui-ci est unique dans le shell courant. Si plusieurs

sont utilis s simultan ment (comme par exemple avec plusieurs fen tres de console), chacun

aura ses propres jobs et ne pourra agir sur ceux des autres.

La seconde valeur affich e est le PID du dernier processus lanc pour ce job. Il correspondra

la derni re commande dans le tube. tant donn qu'il n'y en a qu'une ici, ce sera donc le PID

pour le processus ex cutant Emacs. Avec l'exemple pr c dent, ce serait celui correspondant

less qui serait affich .

On peut alors utiliser la commande jobs vue pr c demment :

$ jobs

[1]+ Running emacs &

On retrouve ici le num ro du job et la commande utilis e pour le lancer (dans la derni re

colonne). La texte "Running" signifie qu'il est en train de s'ex cuter. Le signe + indique qu'il

s'agit du job le plus r cemment manipul (ce qui sera utile pour les commandes qui seront

vues ensuite).

Si le programme avait t lanc en oubliant d'ajouter le $ il est tout de m me possible de

pouvoir continuer d'utiliser le shell. Pour cela, il faut utiliser la combinaison de touches Ctrl-

Z (maintenir la touche Ctrl et appuyer sur la lettre Z). On aura alors ceci :

$ jobs

[1]+ Stopped emacs

Contrairement l'exemple pr c dent, l' tat du job est indiqu comme "Stopped". Le job est

alors en sommeil et ne r alise aucune action. La fen tre d'Emacs est inactive et on ne peut

utiliser ce programme. Il existe toutefois une commande qui permet de demander ce qu'un

job arr t reprenne son ex cution en arri re-plan. Il s'agit de bg qui prend en param tre le

Yahia SLIMANI/Habib SMEI

  • Page 10 -

MP2L

Cours GNU/Linux

num ro de job. Par d faut, bg agit sur le job portant le + dans la liste affich e. Voici ce que

l'on obtient alors :

$ bg

[1]+ emacs &

$ jobs

[1]+ Running emacs &

Tout se passe alors comme si le & avait t indiqu lors du lancement du programme. On peut

remarquer qu'il est d'ailleurs ajout l'affichage.

A l'oppos de bg, il existe fg qui permet de mettre en avant-plan un job. Celui-ci s'ex cutera

alors dans le shell emp chant de saisir d'autres commandes. Le param tre pass fg est le

m me que pour bg (le num ro de job et par d faut celui avec un +). fg peut tre utilis pour

un job tournant en arri re-plan ou arr t .

L'avant-dernier job manipul est lui aussi indiqu d'une mani re particuli re. Voici un

exemple fictif d'affichage :

$ jobs

[1] Running mozilla &

[2]- Stopped su

[3]+ Stopped emacs -nw &

[4] Running dtfile &

En tapant seulement fg (sans param tre donc), c'est Emacs qui sera mis en avant-plan (l'option

-nw permet de l'utiliser en mode texte directement dans la console). Pour rendre le

programme su actif et utilisable, on peut taper indiff remment une des deux commandes

suivantes :

$ fg 2

$ fg -

L'utilisation du - permet donc d'acc der l'avant-dernier job et d'ainsi facilement passer d'un

job un autre sans conna tre leurs num ros.

Etant donn que kill est une commande int gr e bash, il permet aussi d'int ragir avec les

jobs. Pour cela, il faudra la place du PID indiquer le num ro du job pr c d du caract re %.

Comme par exemple :

$ kill -SIGSTOP %1

Qui stoppera le job num ro 3. En fait l'utilisation de Ctrl-Z vue pr c demment est quivalente

l'envoi d'un signal SIGSTOP.

Yahia SLIMANI/Habib SMEI

  • Page 11 -