Exécution en avant ou arrière plan
1er plan (foreground) : le SHELL s’interrompt pour laisser le contrôle au processus qu’il crée (processus fils)
… “on perd la main”
Arrière plan ou Tache de fond (background) : le processus créé se déroule en CONCURRENCE avec le shell
… “on a la main”
Toute commande peut être lancée en tache de fond
Il faut faire suivre la commande de ‘&’ :
$ cc -o proj1 /usr/proj1/*.c &
Il peut être judicieux de rediriger alors la sortie :
$ cc -o proj1 /usr/proj1/*.c 2> erreurs &
Le Contrôle de Jobs
* Non disponible en sh
* Permet de suspendre, sans le supprimer, un travail ( job). On utilise pour cela le $^Z (CTRL-Z)
* Chaque job est identifié par un numéro. On accède ce numéro par la commande jobs
* On peut faire repartir un job suspendu par la commande fg <n> (en premier plan) ou bg <n> (en tache de fond)
1 un processus stoppé par un CRTL-C ne peut être relancé bien sûr…
$> cc -c -O fichier?.c
$> ^Z
[1] + 12345 Stopped cc -c -O fichier3.c
$> bg
…
$> jobs
[1] + 12345 Running cc -c -O fichier3.c
…
$>
ou pour mettre en tache de fond un job particulier (avec son numéro) :
$> jobs
[1] Stopped kmail
[2]- Stopped xmms
[3]+ Stopped sleep 120$> # on ne relance que le 2
$> bg 2
$> jobs
[1]- Stopped kmail
[2] Running xmms &
[3]+ Stopped sleep 120
Quelques autres commandes utiles
top : affiche une vue temps réel (et ordonnées) des processus en cours
nice : execute un pg avec une priorité modifiée
renice : change la priorité d’un process en cours