Vous êtes sur la page 1sur 17

Préparation à LGNU

Topic 103: ’examen LPI101


and Unix Commands

Slim MARGHLI-Senior Linux System Administrator


103.5 Create, monitor and kill processes

Weight: 4
Description:
Candidates should be able to perform basic process management.

Key Knowledge Areas:


Run jobs in the foreground and background.

Signal a program to continue running after logout.

Monitor active processes.

Select and sort processes for display.

Send signals to processes.

2 Slim MARGHLI-Senior Linux System Administrator


103.5 Create, monitor and kill processes

Partial list of the used files, terms and utilities:



& ●
uptime

bg ●
pgrep

fg

pkill

jobs

kill

killall

nohup

watch

ps

top

free

3 Slim MARGHLI-Senior Linux System Administrator


Processus : définition


Un processus est un programme en cours d'exécution auquel est associé un environnement
processeur et un environnement mémoire.

Un processus est identifié par :

un numéro de processus unique PID (Process ID) ;

un numéro de processus parent PPID (Parent Process ID) ;

un numéro d’utilisateur et un numéro de groupe ;

une durée de traitement et priorité ;

un répertoire de travail actif ;

les fichiers ouverts ;

la mémoire allouée ;

la date de lancement du processus ;

le terminal d’attachement ;

l’état du processus ;

les UID effectifs et réels ainsi que les GID effectifs et réels.

4
Processus : états


Durant sa vie (temps entre le lancement et la sortie) un processus peut passer par divers états
ou process state :


exécution (R pour running) : le processus est en cours d'exécution ;

sommeil (S pour sleeping) : quand il est interrompu au bout d'un quantum de temps ;

arrêt (T pour stopped) : le processus a été temporairement arrêté par un signal. Il ne
s'exécute plus et ne réagira qu'à un signal de redémarrage ;

zombie (Z pour zombie) : le processus vient de réaliser un exit, il apparaît
uniquement dans la table des processus où il est conservé le temps pour son
processus père de récupère le code de retour et d'autres informations de gestion (coût
de l'exécution sous forme de temps, et d'utilisation des ressources ).


Sous Unix, un processus peut évoluer dans deux modes différents : le mode noyau et le
mode utilisateur. Généralement, un processus utilisateur entre dans le mode noyau quand il
effectue un appel-système.
5
Lancement en tâche de fond

Il suffit de saisir, après avoir tapé la commande, le ET Commercial


« & ». Dans ce cas, le shell et la commande lancée fonctionneront
en parallèle.

[user1@dragon ~]$ ls -lR / >lister_tout.txt 2>/dev/null&


[1] 8404

6
Background, foreground, jobs


Vous pouvez récupérer la main sous le shell
si vous avez lancé un processus au premier
plan en tapant [Ctrl] Z

Vous pouvez en obtenir la liste avec la
commande jobs.

Les commandes bg et fg permettent d’agir
sur ces jobs en prenant comme paramètre
leur numéro.

bg est exécutée sur un job stoppé pour le
relancer en arrière-plan.

fg permet de replacer le processus en
premier plan.

7
Obtenir des informations sur les
processus : ps


Elle produit une liste statique, ou instantané, de ce qui est
cours d'exécution au moment où la commande est
exécutée.

Options :
Les arguments de la ligne de commande peuvent être précédées
par un "-", mais ce n'est pas indispensable.

l  affichage long

u (utilisateur) présente le nom de l'utilisateur et l'heure de
lancement.

v (vm) affiche des informations sur la mémoire virtuelle.

m (mémoire) affiche des informations sur l'occupation
mémoire. A combiner avec l'option p pour obtenir les
nombres de pages.

f (forêt) affiche les arbres généalogiques des processus.

a (autres) présente également les processus des autres
utilisateurs.
8
Obtenir des informations sur les
processus : ps


Options :

a (autres) présente également les processus des autres
utilisateurs.

x affiche les processus qui n'ont pas de terminal de
contrôle.

c (commande) afficher le nom de la commande exécutée.

e (environnement) présente l'environnement à la suite de la
ligne de commande exécutée.

h ne pas afficher d'en-tête.

r ne présenter que les processus en exécution (running)
I

9
Obtenir des informations sur les
processus : pgrep


pgrep cherche parmi les processus en cours d'exécution et
affiche sur la sortie standard les PID qui correspondent aux
critères de sélection.

pgrep -u root sshd
affichera seulement les processus nommés sshd
appartenant à root.

pgrep -u root,daemon
affichera les processus appartenant à root ou à daemon.

10
Obtenir des informations sur les
processus : top


Affiche une liste en temps réel des processus exécutés sur le système.

Affiche également des informations supplémentaires sur le temps d'activité du
système, l'utilisation actuelle du CPU et de la mémoire, ou le nombre total de
processus en cours d'exécution, et

Permet d'effectuer des actions comme le tri de la liste ou l'arrêt d'un
processus.

11
watch-uptime-free


watch exécute un programme périodiquement (2 secondes par défaut) et nous
permet de regarder le changement de sortie du programme dans le temps.


Pour surveiller comment la moyenne de charge change à mesure que davantage de
processus sont exécutés : watch uptime.


uptime - Indique depuis combien de temps le système fonctionne.


uptime donne également des informations sur la charge du système.


Pour modifier l'intervalle de mise à jour, utilisez les options -n ou --interval plus
le nombre de secondes comme dans: watch -n 5 free


free - Affiche la quantité de mémoire libre et utilisée dans le système

12
Arrêt d’un processus/signaux


Kill -l : affiche la liste des signaux

kill [ -s signal | -p ] [ -- ] pid : envoie un signal à un processus

13
Arrêt d’un processus/signaux

14
Arrêt d’un processus/signaux

1 SIGHUP indique la déconnexion détectée sur le terminal de


contrôle ou la mort du processus de contrôle
2 SIGINT Interruption

9 SIGKILL Instruction (KILL) - termine le processus

Clean & simple immédiatement

15 SIGTERM Signal de terminaison

18 SIGCONT Demande de reprise du processus

19 SIGSTOP Demande de suspension imbloquable

20 SIGTSTP Demande de suspension depuis le clavier

15
Arrêt d’un processus/signaux

EXEMPLES


Envoyer SIGTERM aux processus (PIDs 1000 et 10001)
$ kill 1000 1001
$ kill ­-15 1000 1001
$ kill ­-SIGTERM 1000 1001
$ kill -s ­TERM 1000 1001

Arrêt forcé !
kill ­-9 1000 1001 ou bien kill -­KILL 1000 1001

Envoyer un signal à des processus indiqués par leurs noms
killall -­HUP httpd

Forcer syslog à relire son fichier de configuration
pkill -HUP syslogd
16
nohup


Lorsqu’un traitement long est lancé en tâche de fond et que
l’utilisateur veut quitter le shell, ce traitement sera alors
arrêté et il faudra tout recommencer.

Le moyen d’éviter cela est de lancer le traitement
(processus) avec la commande nohup. Dans ce cas le
processus lancé ne réagira plus au signal SIGHUP.

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.

17

Vous aimerez peut-être aussi