0% ont trouvé ce document utile (0 vote)
73 vues14 pages

Processus 2

Le document décrit les signaux et la communication interprocessus. Il explique des commandes comme kill, killall, jobs, fg, bg et nohup pour gérer et contrôler les processus.

Transféré par

smail.doudou
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
73 vues14 pages

Processus 2

Le document décrit les signaux et la communication interprocessus. Il explique des commandes comme kill, killall, jobs, fg, bg et nohup pour gérer et contrôler les processus.

Transféré par

smail.doudou
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les processus

partie 2
Les signaux
• Certaines événements (erreur, interruption de clavier tq: ctrl c, ctrl d,…)
peut être redirigé à un processus à l’aide d’un signal.
• Ce mécanisme permet la communication interprocessus
interprocessus, notamment
entre le système d’exploitation et le processus en cours d’exécution .

Les principaux signaux sont :


Numéro Nom Signification
1 SIGHUP Arrêt
2 SIGINT Interruption
9 SIGKILL Terminaison (non ignoré)
15 SIGTERM Fin de programme
24 SIGSTOP Stopper l’exécution
Par exemple :

• Si vous lancez une commande et que vous appuyer les


touches CTRL-Z le processus en cours d’exécution recevra
le signal numéro 24 (SIGSTOP) Alors le processus stoppera
son exécution.

• Une déconnexion provoquera l’envoi du signal 1 (SIGHUP) à


tous les processus.

• Lorsque vous appuyez CTRL-C, vous envoyez un signal 2


(SIGINT) au processus courant.
Contrôle des processus ( suite)

•kill : envoyer un signal à un processus

•Killall : arrêter un processus

•fg : mettre le processus en avant-plan.

•bg : mettre le processus en arrière-plan.

•jobs :connaitre les commandes qui tournent en arrière plan.

•nohup : rendre le processus non sensible à la déconnexion


La commande kill
Cette commande permet d’envoyer un signal à un processus
Par défaut , elle envoie le signal 15 SIGTERM ( arrêter un processus )
Syntaxe :
kill SIGNAL PID_PROCESSUS
• Exemple :
$kill 2010 : Arrêter le processus ayant le PID 2010
$kill -9 2010 : Forcer la terminaison (signal non ignorée )

Pour connaitre tous les signaux disponible sous votre système alors utiliser la
commande kill –l
La commande killall
• Permet d’arrêter un processus et toute son arborescence en donnant le
nom du processus
Syntaxe :
killall NOM_DU_ PROCESSUS

• Exemple :
$killall gedit : ( arrêter le processus ‘gedit’ et tous ses ancêtres )
Tâches en arrière plan et en avant plan
• L’exécution de certaines commandes monopolisent le terminal et on
ne peut pas exécuter d’autre commandes;
c’est le mode d’exécution par défaut des commandes: c’est une
exécution en avant plan

On peut lancer les processus en arrière


arrière--plan, la syntaxe est:

$commande &
$

Là, on peut continuer à travailler sur le système sachant que le


processus lancé est en cours d’exécution en arrière plan.
Exemple

$cp file.mp4 /tmp/mp4/ &

Si le fichier est très grand , alors sa copie prend beaucoup de


temps et on ne peut pas lancer d’autres commande;

il vaut mieux lancer le processus en arrière plan pour


récupérer le shell afin de lancer d’autres commandes .
Tâches en arrière plan et en avant plan

La commande « jobs » :
permet de visualiser la liste des processus en arrière plan ;

On peut faire basculer le processus entre le mode en arrière plan et le


mode en avant plan :

– Pour rendre un processus en avant plan (foreground


foreground) on utilise la
commande : $fg
– Pour rendre un processus en arrière plan (backgrround) on utilise
la commande : $bg
Exemple :
• Lancer la commande de l’éditeur gedit comme suit : gedit &
• Lancer la commande de l’horloge comme suit: xclock &
Ce ci permit d’exécuter les processus gedit et xclock en arrière plan,
Et on peut récupérer le shell afin de lancer d’autre commande.

$ps
5432 tty1 gedit
5433 tty1 xclock

$ jobs //Affiche les processus en arrière plan


[1] Running gedit
[2] Running xclock

$fg 1 // Récupérer le processus en arrière plan ayant le


numéro 1 il devient un processus en avant plan
$ jobs
[2] Running xclock
La Commande nohup
Lorsqu’un processus long est lancé et que l’utilisateur veut fermer
sa session;
Alors ce processus sera arrêté et il faudra tout relancer à la
prochaine ouverture de session !!

Le moyen d’éviter cela est de lancer le processus de manière que la


fermeture de session n'entraine pas l'arrêt du processus: c'est-à-dire
l'exécution de processus n'est pas arrêtée à la déconnexion.

Ce ci est possible grâce à la commande « nohup »


La Commande nohup
No Hang Up : l'exécution de commande n'est pas arrêtée à la déconnexion.
La syntaxe est comme suit :
nohup commande &

Par défaut les canaux de sortie et d’erreur standards sont redirigés vers
un fichier nohup.out, sauf si la redirection est explicitement précisée
comme suit:
nohup commande > myfile &

Dans ce cas; la sortie de la commande est dirigée vers le fichier myfile.


Exemple
$ nohup wget www.esi.dz/ubuntu/ubuntu-12.4.iso > /tmp &
$exit
Ceci permet de lancer un téléchargement (commande wget )
depuis le serveur www.esi.dz

• Un tel processus reste en cours d’exécution même après la fermeture


de session.

Après avoir reconnecté, ce processus ne sera attaché à une console


donnée : tty1, tty2…etc;

Quant on visualise les processus en cours d’exécution ( ps –u) le


champ de tty reçoit cette valeur « ? »
Conclusion
• Un processus est un programme en cours d’exécution
• Un processus passe par plusieurs états durant sa vie.
• Il est identifié par un PID , on peut avoir une arborescente de
processus fils.
• Un processus peut être exécuté en avant et/ou en arrière plan,
• Plusieurs commandes pour la gestion et le contrôle de
processus ( ps ,top, kill , nohup ,……….)

C’est important
important de savoir manipuler, surveiller et contrôler les
processus sur votre machine !!!!

Vous aimerez peut-être aussi