0% ont trouvé ce document utile (0 vote)
4 vues20 pages

Gestion des processus sous Linux

Un processus est une instance de programme en cours d'exécution, identifiable par un numéro unique (PID) et un propriétaire. Le système d'exploitation gère les processus en stockant des informations telles que le PID, le PPID, le UID, et permet de les manipuler via des commandes comme ps, kill, et top. Les processus peuvent recevoir des signaux pour modifier leur état, et chaque signal a une signification spécifique.

Transféré par

Papa Ibrahima kamara
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)
4 vues20 pages

Gestion des processus sous Linux

Un processus est une instance de programme en cours d'exécution, identifiable par un numéro unique (PID) et un propriétaire. Le système d'exploitation gère les processus en stockant des informations telles que le PID, le PPID, le UID, et permet de les manipuler via des commandes comme ps, kill, et top. Les processus peuvent recevoir des signaux pour modifier leur état, et chaque signal a une signification spécifique.

Transféré par

Papa Ibrahima kamara
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

Chap 7

Les processus
Définition de processus
• Un processus est une instance de programme
s'exécutant à un instant donné ainsi que son
contexte (ou environnement).

• Son environnement désigne l'ensemble des


ressources utilisées par le programme pour
pouvoir se dérouler comme par exemple la
mémoire, les fichiers ouverts, l'état d'avancement
du programme, les droits associés, la priorité ...

2013-12-02 [Link] UBambey 2


Caractéristiques des processus
• Les processus sont identifiés:
- par un numéro unique dans le système à un
moment donné : le PID. C'est à l'aide de ce
nombre que l'on peut désigner une instance de
programme et interagir avec.
- Par un propriétaire. Il s'agit de l'utilisateur qui a
demandé l'exécution. En général, seul ce
propriétaire pourra entreprendre des actions sur le
processus
2013-12-02 [Link] UBambey 3
premier processus

•Au démarrage le processus init est créé


•Init crée tous les autres processus qui sont ses fils
•La commande ps nous permet de voir les processus créés

init

syslogd crond ….

2013-12-02 [Link] UBambey 4


Gestion des Processus
• Commande ps: temps CPU utilisé

[lewandow:~] ps
PID TT STAT TIME COMMAND
3899 p1 S 0:00.08 -zsh
numéro de 4743 p1 S 0:00.14 emacs
processus 4180 std S 0:00.04 -zsh commande
exécutée

état du
processus: R actif
T bloqué
terminal
P en attente de page
associé
D en attente de disque
S endormi
IW swappé
2013-12-02 [Link] UBambey Z tué 5
Gestion des Processus
La commande pstree donne une bonne illustration de la hiérarchie de création des
processus (père et fils).
pstree -p
init-+-ahc_dv_0
|-crond
|-cupsd
|-devfsd
|-keventd
|-khubd
|-kinoded
|-klogd
|-ksoftirqd_CPU0
|-kswapd
|-kupdated
|-lockd
|-mdrecoveryd
|-6*[mingetty]
|-10*[mysqld_safe---mysqld---mysqld---mysqld]
|-8*[nfsd]
2013-12-02 |-ntpd [Link] UBambey 6
|-portmap
Processus
• Pour chaque processus exécuté, le système
d’exploitation stocke un certain nombre
d’informations :
- Numéro unique du processus PID (Process
IDentification) ;
- Numéro du processus parent PPID (Parent
Process Identification) ;
- Numéro d’utilisateur UID (User IDentification)
ayant lancé le processus ;

2013-12-02 [Link] UBambey 7


Processus
• Numéro du groupe GID (Group IDentification)
ayant lancé le processus ;
• Durée de traitement utilisé (temps CPU) et priorité
du processus ;
• Référence au répertoire de travail courant du
processus ;
• Table de référence des fichiers ouverts par le
processus

2013-12-02 [Link] UBambey 8


Commandes usuelles
• Pour lister les processus actifs lancés dans la console
courante.
ps .
• pour voir tous les processus exécuté par l'utilisateur :
ps -ux
• pour voir les processus exécuté par l'utilisateur dans le
terminal courant :
ps T
• pour voir tous les processus du système
ps aux

2013-12-02 [Link] UBambey 9


Qques colonnes du tableau obtenu avec
ps aux.
– "USER" : à quel utilisateur appartient le processus.
– "PID" : le numéro qui identifie le processus
– "%CPU" : en % les ressources du microprocesseur
utilisées par le processus.
– "%MEM" : en % les ressources en mémoire vive
utilisées par le processus.
– "RSS" : mémoire réellement utilisée en ko par
le processus.
– "START" : l'heure à laquelle le processus a été lancé.

2013-12-02 [Link] UBambey 10


Commandes usuelles
• ps aux | less : pour contrôler le défilement
• ps aux | grep apache : pour n'afficher que les lignes
concernant le processus cherché.
• ps faux : pour lister tous les processus en les regroupant
par enchaînement d'exécution
• pstree | less permet de visualiser la filiation des processus
sous forme arborescente.
• pidof apache, pour connaitre la liste des PID des
processus d'un programme

2013-12-02 [Link] UBambey 11


Commandes usuelles

• La commande top vous permet d'afficher des informations


en continu sur l’activité du système. Elle permet surtout de
suivre les ressources que les processus utilisent (quantité
de RAM, pourcentage de CPU, la durée de ce processus
depuis son démarrage).
top -d
• l'option -d pour spécifier des délais de rafraîchissement (en
secondes).
• En cours d'utilisation de top, il est possible de gérer les
processus (changer les priorités des processus, leur
envoyer un signal ..) de manière interactive.
2013-12-02 [Link] UBambey 12
Modifier l’état d’un processus
• On peut gérer les processus en leur envoyant des signaux
par l'intermédiaire des commandes kill et killall, suivant
que l'on connaisse le numéro PID du processus, ou bien
son nom

• Exemple :
Pour arrêter ou envoyer un signal à un processus, il faut
utiliser la commande kill.
Syntaxe : kill [-Numéro-du-signal] PID
Ex : kill –9 2345

2013-12-02 [Link] UBambey 13


Les signaux
•Chaque processus peut recevoir des signaux
•Chaque signal a une signification particulière

Nom du signal Numéro Description

SIGINT 2 touche Ctrl-C, termine le processus

SIGKILL 9 arrêter tout programme car il ne peut être géré


différemment que le comportement par défaut.
L'arrêt du programme est brutal.
SIGTERM 15 Arrête le processus, mais permet d’effectuer
des opérations avant l’arrêt.
SIGCHLD 17 Informe le père de la mort de son fils

2013-12-02 [Link] UBambey 14


Les signaux
• kill -15 PID : demande normale d'arret au processus, il
peut refuser (-15 peut etre remplacé par SIGTERM)
• killall -9 httpd : suppression plus radicale, en cas de
processus récalcitrant ! (Le signal -9 par exemple s'appelle
SIGKILL
• kill $(pidof ypserv) : supprime le processus serveur NIS,
dont le pid est obtenu le résultat de la commande pidof
images/
• killall -HUP httpd : ordonne au processus de relire son
fichier de configuration, ce qui évite de le relancer.
• kill -l : pour connaitre la liste des signaux qu'on peut passer
à kill.
2013-12-02 [Link] UBambey 15
Les signaux
• Exemple : déconnecter radicalement
l'utilisateur maseck
• ps aux | grep toto
---> maseck 858 ............ –bash
• kill -9 858

2013-12-02 [Link] UBambey 16


Les signaux
• Pour mémoire, Il existe 63 signaux différents :

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL


5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ

2013-12-02 [Link] UBambey 17


Les signaux
• 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
• 30) SIGPWR 31) SIGSYS 32) SIGRTMIN 33) SIGRTMIN+1
• 34) SIGRTMIN+2 35) SIGRTMIN+3 36) SIGRTMIN+4 37) SIGRTMIN+5
• 38) SIGRTMIN+6 39) SIGRTMIN+7 40) SIGRTMIN+8 41) SIGRTMIN+9
• 42) SIGRTMIN+10 43) SIGRTMIN+11 44) SIGRTMIN+12 45)
SIGRTMIN+13
• 46) SIGRTMIN+14 47) SIGRTMIN+15 48) SIGRTMAX-15 49)
SIGRTMAX-14
• 50) SIGRTMAX-13 51) SIGRTMAX-12 52) SIGRTMAX-11 53)
SIGRTMAX-10
• 54) SIGRTMAX-9 55) SIGRTMAX-8 56) SIGRTMAX-7 57) SIGRTMAX-6
• 58) SIGRTMAX-5 59) SIGRTMAX-4 60) SIGRTMAX-3 61) SIGRTMAX-2
• 62)SIGRTMAX-1 63) SIGRTMAX
2013-12-02 [Link] UBambey 18
Priorités
• Chaque processus a une priorité d’exécution
• Sous linux les priorité vont de –19 à 19
• Plus la valeur est grande plus la priorité est
petite
• La commande nice affecte la priorité
• Syntaxe : nice [-n Valeur] [Commande
[Arguments ...]]
• nice -n 19 .mon_processus

2013-12-02 [Link] UBambey 19
Gestion des Services
La commande service : manipule les services de la machine
#> service -s
[Link] (pid 1541) is running...
nfsd (pid 1529) is running...
1528 (pid 1527) is running...
1526 (pid 1525) is running...
1524 (pid 1523) is running...
1522 (pid ) is running...
lockd (pid 1126) is running...
[Link] (pid 937) is running...
ntpd (pid 1232) is running...
numlock is enabled
partmon has been startedportmap (pid 839) is running...
The random data source exists
Sound loaded
syslogd (pid 864) is running...

2013-12-02 [Link] UBambey 20

Vous aimerez peut-être aussi