100% ont trouvé ce document utile (2 votes)
507 vues34 pages

Admin - Linux - Processus Planification Tâches Cours 2

Ce document décrit la gestion des processus et la planification des tâches sous Linux. Il explique notamment la définition d'un processus, les différents états d'un processus, la communication entre processus, et la surveillance et l'arrêt des processus.

Transféré par

860575c6c1ss
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 PPT, PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (2 votes)
507 vues34 pages

Admin - Linux - Processus Planification Tâches Cours 2

Ce document décrit la gestion des processus et la planification des tâches sous Linux. Il explique notamment la définition d'un processus, les différents états d'un processus, la communication entre processus, et la surveillance et l'arrêt des processus.

Transféré par

860575c6c1ss
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 PPT, PDF, TXT ou lisez en ligne sur Scribd

GESTION DES PROCESSUS &

PLANIFICATION DES TACHES

ADMINISTRATION LINUX
Plan:
 Définition
 Généalogie d’un processus
 Processus de démarrage
 États d’un processus
 Interface d’un processus
 Caractéristiques d’un processus
 Communication interprocessus par signaux
 Vérification et surveillance des processus
 "Tuer" un processus
 Backgroung, foreground, jobs
 Modification des priorités
 Le processus init
 Automatisation des tâches
Définition
 Un Unix est une machine généralement pseudo
multi-tâches - Chaque tâche est appelée
processus - le processeur s'occupe tour a tour
d'exécuter une partie d’un processus, durant un
temps donné (quantum).
 Au démarrage de la machine, un processus père de
tout le monde est lancé: init (numéro 1).
 A partir des informations contenues sur le disque
de boot le processus init lance d'autres processus
pour mettre en route les services disponibles sur la
machine.
Généalogie d’un processus
• Les processus des utilisateurs sont lancés par un
interpréteur de commande (shell). Ils peuvent eux même
lancer ensuite d’autres processus.
• Ces processus doivent ensuite pouvoir communiquer
entre eux
• Le processus créateur = le père
• Les processus crées = les fils
Processus de démarrage
États d’un processus
 Unix est un système multi-tâche préemptif
 Un processus est une abstraction d’un programme en
cours d’exécution
 Un processus c’est: programme + espace mémoire ( +
d'autres ressources)
 Un processus a plusieurs états possibles

nouveau en exécution stoppé

prêt En attente (suspendu)


terminé
Les Zombies
☞ Dans les applications importantes, un processus joue le rôle de
superviseur et c’est lui qui active les autres processus.
☞ Quand ces derniers meurent, le noyau Linux conserve leur code
retour pour qu’il soit disponible au superviseur.
☞ Ces processus sont alors dans l’état « Zombie ».
☞ Ils n’utilisent plus de ressources systèmes (CPU, mémoire) mais ils
occupent encore chacun une entrée dans la table des processus.
☞ Il est impossible de les tuer.
☞ Normalement ils disparaissent quand le superviseur lit leur code
retour.
☞ Ils peuvent saturer le système.
Interface d’un processus
stdout

stdin processus

stderr

Tout processus Unix, dès son lancement, possède 3 fichiers ouverts :


L’entrée standard (stdin ou fichier &0)
La sortie standard (stdout ou fichier &1)
La sortie erreur (stderr ou fichier &2)
Caractéristiques d’un processus
 PID (Process IDentification) c’est l’identifiant d’un processus.
 PPID (Parent PID) c’est l’identifiant du père du processus.
 PGID (Process Group IDentification) c’est l’identifiant d’un groupe de
processus.
Le PGID est partagé par tous les processus d’un service.
 UID Le compte utilisateur sous lequel le processus s’exécute.
 GIDs Le, ou les comptes groupe sous lesquels le processus s’exécute.
 TTY Le terminal texte (TeleTYpe) auquel le processus est associé.
 NICE Valeur modifiable qui intervient dans le calcul de la priorité.
 COMMAND Corresponde au nom de l’exécutable.
Communication interprocessus
par signaux
 Un processus peut envoyer un signal a un autre processus.
 Il existe 63 signaux, numérotés de 1 a 63.
 Un processus peut traiter un signal reçu, soit en l’ignorant soit en
déclenchant une action préprogrammée (le gestionnaire du signal).
 La réception d’un signal non géré entraine la mort du processus.
 Le signal numéro 9 ne peut être géré, il entraine obligatoirement la
mort du processus.
 On ne peut envoyer des signaux qu’a ses propres processus
 Seul root peut envoyer des signaux a des processus ayant un UID
quelconque.
Vérification et surveillance des
processus
 Trois commandes permettent de visualiser les
processus :
 La commande ps (process status) permet d’avoir des
informations sur les processus en cours. Lancée seule,
elle n’affiche que les processus en cours lancés par
l’utilisateur et depuis la console actuelle.
Vérification et surveillance des
processus
 Visualisation statique : ps
-e (affichage de tous les processus) et -f (affichage détaillée)
 Avec ps –ef on obtient par exemple :

 L’option a affiche les processus pour tous les utilisateurs.


 L’option x affiche les processus sans terminal.
 L’option u affiche en regard de chaque processus le nom de
l’utilisateur et son heure de lancement.
Vérification et surveillance des
processus
 Visualisation arborescente : pstree
Cette présentation permet de voir plus facilement les
dépendances entre les processus.
Vérification et surveillance des
processus
 Visualisation dynamique : top
Cette commande fournit également d'autres
informations (RAM, CPU, etc.).
 La commande ps n’offre qu’un aperçu "instantané" du
système. Top fournit un résumé mis à jour des processus
actifs et de leur utilisation en ressources.
 Le résultat de la commande peut être assez long (en
fonction des processus ouverts) et sachez que la commande
ne retourne pas au prompt (arrêt de la commande par
[Ctrl] C).
 Elle actualise la page toutes les dix secondes.
Vérification et surveillance des
processus
 La commande lsof liste les fichiers ouverts et les
processus actifs .
 Exemples:

 lsof -i : indique les processus de type Internet.


 lsof -i -a -p 1234 : tous les ports réseau ouverts par le
processus 1234 (-a est interprété comme l’opérateur ET).
"Tuer" un processus

 La commande « kill » sert a communiquer avec des processus :


➢ arrêt de processus
➢ demande au processus de se reconfigurer
➢ passage en mode verbeux du processus
➢ etc.
 « kill » existe sur tous les Unix
 2 syntaxes possibles :
➢ syntaxe numérique : « kill -9 2878 »
➢ syntaxe symbolique : « kill –KILL 2878 »
"Tuer" un processus

 Un utilisateur ne peut arrêter que les processus dont il


est propriétaire c'est à dire qu'il a lancé.
 Seul l'administrateur a le droit d'arrêter un processus
ne lui appartenant pas.
Exemples :
kill 321 (termine le processus)
kill –9 321 ("tue" le processus)
kill all nom_prog (arrête le programme)
"Tuer" un processus
 L’option -l de kill permet d’obtenir la liste des signaux.
 Exemple de signaux:
 (SIGHUP): est envoyé par le père à tous ses enfants
lorsqu’il se termine.
 (SIGINT): Interruption du processus demandé (touche
[Suppr], [Ctrl] C).
 (SIGQUIT): Interruption du processus demandé avec
fichier de débuggage
 (SIGKILL):Signal ne pouvant être ignoré, force le
processus à finir ’brutalement’.
 (SIGTERM): Signal envoyé par défaut par la commande kill.
Demande au processus de se terminer normalement.
Modifications des priorités
 Un processus Unix possede une priorite d’execution : son « nice
number »
 −20 ≤ nice number ≤ 19
➢ −20 correspond a la priorite maximale
➢ 19 correspond a la priorite minimale
 Un utilisateur peut descendre la priorite de ses processus.
 Seul l’administrateur peut augmenter la priorite de n’importe quel
processus.
 Pour lancer un processus a la priorite N (N pouvant etre negatif) :
➢ nice [N] commande
 Une fois un processus demarre, on peut changer sa priorite par la
commande : «renice priorite PID »
Backgroung, foreground, jobs
Backgroung, foreground, jobs

 CTRL Z Suspend la tache courante


 jobs Affiche la liste des travaux
 kill %n Arrête le travail « n »
 fg %n Ramène le travail « n » en avant plan
 bg %n Met le travail « n » en arrière plan
Backgroung, foreground, jobs
 user@userlaptop:~$ sleep 100
 ^Z
 [1]+ Stopped sleep 100
 user@userlaptop:~$ Jobs
 [1]+ Stopped sleep 100
 user@userlaptop:~$ bg
 [1]+ sleep 100 &
 user@userlaptop:~$ jobs
 [1]+ Running sleep 100 &
Backgroung, foreground, jobs
 user@userlaptop:~$ ps
PID TTY TIME CMD
7173 pts/1 00:00:00 bash
7231 pts/1 00:00:00 sleep
7232 pts/1 00:00:00 ps
 user@userlaptop:~$ kill 7231
[1]+ Complété sleep 100
 user@userlaptop:~$ ps
PID TTY TIME CMD
7173 pts/1 00:00:00 bash
7233 pts/1 00:00:00 ps
Le processus init
Le démarrage de Linux :noyau
vers init
 le noyau lance le programme /sbin/init, chargé de
terminer la séquence d'amorçage.

 La configuration d'init se trouve dans /etc/inittab. Ce


fichier varie énormément d'une distribution à l'autre
mais globalement, les actions effectuées sont à peu
près les mêmes.
Le démarrage de Linux: configuration
de init
Sur une distribution compatible RedHat, il existe 7
runlevels :
 0 - halt
 1 - mode mono-utilisateur (dépannage)
 2 - mode multi-utilisateurs sans les montages NFS
 3 - mode multi-utilisateurs (texte)
 4 - non utilisé
 5 - mode multi-utilisateurs avec lancement de X11
(graphique)
 6 - reboot
Le démarrage de Linux:init active
les services(1)
 A chaque runlevel correspond un répertoire
/etc/rc.d/rcX.d ou X est le numéro du runlevel en question.
Ces répertoires contiennent des liens symboliques de la
forme:
 <lettre><nombre><nom>
 Ces liens pointent vers des scripts contenus dans
/etc/init.d/ qui permettent de lancer ou d'arrêter des
services.
Le démarrage de Linux:init active
les services(2)
 La lettre peut être S (start) ou K (kill) et le nombre varie
entre 00 et 99.La lettre indique si le service doit être
démarré ou arrêté et le nombre détermine l'ordre des
actions.

 Exemple : /etc/rc0.d/K20ssh -> /etc/init.d/ssh


Lors de l'arrêt, lorsque toutes les actions <20 sont faites,
init appelle :
/etc/init.d/ssh stop
Automatisation des tâches
cron
 Le service cron permet la programmation d’événements
à répétition. Il fonctionne à l’aide d’une table, appelée
une crontab. C’est un fichier texte, éditable avec un
simple éditeur, par exemple vi. Pour modifier votre
crontab personnelle utilisez la commande crontab pour
éditer la table, avec le paramètre -e.

 Les fichiers crontabs sont sauvés dans:/var/spool/cron.


cron
• Le service cron doit tourner pour que les crontabs
soient actives.
 ps -ef|grep cron

• Le format d’un enregistrement de crontab est le


suivant :
Minutes Heures Jour du mois Mois Jour semaine Commande

• Crontab –l :liste les crontabs active


Définir une crontable personnelle
 Un utilisateur crée un fichier particulier de requête
appelé crontable avec la commande crontab. Ce
fichier se placera dans le répertoire
/var/spool/cron/crontabs/ avec comme nom celui de
l’utilisateur.
# Exemple de tâche personnelle
00 08 * * * rm /tmp/.*.*p
at
 La commande at et les commandes associées
permettent une gestion des traitements batchs.
Contrairement à la crontab les modifications sont
volatiles : elles sont perdues lorsque la session est
terminée. C’est à vous de placer la liste des commandes
dans un éventuel fichier et de les charger au besoin via
les scripts de votre profil.
 at -f /home/user/test.sh 10:30
FIN

Vous aimerez peut-être aussi