Définition
La
succession de processus Les
commandes sur les processus top
ps pstree kill
killall
Définition
On
appelle processus, un programme chargé en mémoire
centrale et en cours d'exécution. Il est géré
par le système d'exploitation.
Chaque
processus peut créer lui-même des processus.
Ces nouveaux processus sont alors appelés processus
enfants (child process).
Un
pseudo processus est crée au moment du démarrage
du système et a comme PID le numéro 0. Il
crée lui-même un processus enfant, avec le
numéro 1. Le processus numéro 1 est appelé
processus init. Ce processus init est responsable de tous
les processus en cours dans le système. Il permet
d'afficher à l'écran le login et d'utiliser
le shell.
La
succession de processus
On
peut, enchaîner l'exécution de plusieurs processus
de façon totalement indépendante et en séquence
: le déroulement du premier n'influe pas sur celui
du second, qui n'est lancé qu'à la fin de
son exécution.
date;whoami;ls;echo
fin de commande
Les
commandes sur les processus
top
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 la RAM, pourcentage de CPU, la durée
de ce processus depuis son démarrage).
Options
:
-d
spécifie un délais de rafraîchissement
(en secondes)
k
stopper un process de manière interactive en cours
d'utilisation, taper ensuite le nom du signal à envoyer
15 (SIGTERM), met fin à un process
9 (SIGKILL) est plus brutal
touche
"q" quitte top
ps
La
commande ps permet de connaître les processus actifs
à un moment donné :
$ps
[toto]$ ps
PID TTY TIME CMD
30111 pts/2 00:00:00 bash
30195 pts/2 00:00:00 ps
Le champ "PID" est
l'identificateur d'un processus, c'est un nombre. Chaque
processus est identifié dans le système par
un nombre unique.
Le
champ "TTY" indique
à quel port de terminal est associé le processus.
Le
champ "STAT" indique
l'état dans lequel se trouve le processus. Dans l'exemple,
trois processus sont endormis (S
comme "sleep"), et un processus en cours d'exécution
(R comme "run").
Le processus qui est en cours d'exécution n'est autre
que la commande "ps" que nous venons de lancer.
Le
champ "TIME" indique
depuis combien de temps le processus utilise les ressources
du microprocesseur.
Le
champ "COMMAND" précise,
comme son nom l'indique, la commande dont l'état
est décrit par PID, TTY, STAT et TIME.
Une
simple commande "ps" n'indique pas tous les processus
du système. La commande ps nous a juste indiqué
les processus associés à un terminal et qui
dépendent de l'utilisateur courant..
Options
:
ps
-x visualise tous les processus
actifs de l'utilisateur courant (y compris ceux qui ne sont
pas liés à un terminal
Exemple
:
[toto]$ ps -x
PID
TTY STAT TIME COMMAND
29894 pts/0 S 0:00 -bash
29904 pts/0 S 0:00 sh
30111 pts/2 S 0:00 -bash
30251 pts/2 R 0:00 ps -x
(Les
commandes qui ne sont pas associées à un terminal
sont reconnaissables par le point d'interrogation qui rempli
le champ TTY.)
ps
-ax visualise tous les processus
de la machine de tous les utilisateurs
ps -aux affiche les utilisateurs
associés à chaque processus
D'autres champs nous donnent plus d'indications :
Le
champ "USER" indique
l'utilisateur du processus.
Le champ "%CPU" donne
les ressources du microprocesseur utilisées par le
processus
Le champ "%MEM" indique
les ressources en mémoire vive utilisées par
le processus
Le champ "RSS" donne
réellement la mémoire utilisée en kilobytes
par le processus
Le champ "START"
indique l'heure à laquelle le processus a été
lancé.
(%
: en pourcentage)
Exemples :
[toto]$
ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1064 128 ? S Aug21 4:49 Init [5]
root 2 0.1 0.0 0 0 ? SW Aug21 172:21 [kflushd]
root 3 0.2 0.0 0 0 ? SW Aug21 254:01 [kupdate]
root 4 0.0 0.0 0 0 ? SW Aug21 4:40 [kswapd]
root 5 0.0 0.0 0 0 ? SW< Aug21 0:00 [mdrecoveryd]
bin 342 0.0 0.0 1160 360 ? S Aug21 0:00 portmap
root 389 0.0 0.0 1144 408 ? S Aug21 1:19 syslogd -m 0
root 399 0.0 0.0 1452 168 ? S Aug21 0:02 klogd -k /boot/Sy
root 412 0.0 0.0 1428 372 ? S Aug21 0:00 Identd -e -o
daemon 429 0.0 0.0 1088 212 ? S Aug21 0:00 /usr/sbin/atd
root 442 0.0 0.0 1280 124 ? S Aug21 0:35 crond
root 471 0.0 0.3 6936 2428 ? S Aug21 32:47 cupsd
root 484 0.0 0.0 1148 116 ? S Aug21 0:00 lpd
root 502 0.0 0.0 1160 0 ? SW Aug21 0:00 [rpc.rquotad]
root 518 0.0 0.0 0 0 ? SW Aug21 9:11 [nfsd]
root 563 0.0 0.0 1432 488 ? S Aug21 0:00 rpc.mountd --no-n
root 580 0.0 0.0 0 0 ? SW Aug21 0:00 [lockd]
root 581 0.0 0.0 0 0 ? SW Aug21 0:00 [rpciod]
root 594 0.0 0.0 1224 256 ? S Aug21 0:00 rpc.statd
root 663 0.0 0.0 1088 72 ? S Aug21 17:12 gpm -t ps/2
xfs 728 0.0 0.3 5120 2456 ? S Aug21 4:29 xfs -port -1 -dae
root 761 0.0 0.0 1136 340 ? S< Aug21 3:10 /usr/local/tec80/
root 777 0.0 0.0 1032 0 tty2 SW Aug21 0:00 [mingetty]
root 778 0.0 0.0 1032 0 tty3 SW Aug21 0:00 [mingetty]
root 792 0.2 0.8 43424 6920 ? S Aug21 209:10 /etc/X11/X
-auth
root 7076 0.0 0.0 1464 492 ? SN Aug23 0:36 ./lmgrd -c ./lice
root 7077 0.0 0.0 1584 520 ? SN Aug23 0:33 Cdlmd -T 194.167.
root 10058 0.0 0.0 1032 384 tty1 S Sep18 0:00 /sbin/mingetty
tt
root 28540 0.0 0.1 2876 1352 ? S Sep28 0:00 /usr/local/sbin/s
root 29385 0.0 0.1 1896 980 ? S 12:32 0:00 xinetd -reuse
-pid
root 29892 0.0 0.0 1420 756 ? S 17:05 0:00 in.telnetd valerie:
root 29893 0.0 0.1 2088 1176 pts/0 S 17:05 0:00 login --
toto
valfran 29894 0.0 0.1 2288 1408 pts/0 S 17:05 0:00 -bash
valfran 29904 0.0 0.1 2272 1352 pts/0 S 17:08 0:00 sh
root 30109 0.0 0.0 1420 760 ? R 17:58 0:00 in.telnetd: valerie
root 30110 0.0 0.1 2088 1176 pts/2 S 17:58 0:00 login --
toto
valfran 30111 0.0 0.1 2288 1412 pts/2 S 17:58 0:00 -bash
root 30241 0.0 0.6 16112 5468 ? S 18:34 0:00 -:0
valfran 30252 0.0 0.1 2460 828 pts/2 R 18:36 0:00 ps -aux
pstree

Cette commande permet d'afficher les processus et de voir
leurs processus dépendants :
kill
kill [options] PID (numéro du processus)
La
commande "kill" permet d'envoyer un signal à
un processus en cours
Kill
–5 PID arrêt du
processus
kill -9 PID en cas d'échec
d'arrêt du processus (manière forte)
killall
permet de tuer un processus en indiquant le nom du processus
au lieu d'indiquer le PID
Une
commande peut être à l'origine de plusieurs
processus.
killall
grep
Tue
tous les processus qui contiennent la commande grep.
l'option
"-i" qui vous demande
une confirmation avant de tenter d'arrêter un processus.
Jo&Val