Vous êtes sur la page 1sur 15

Ralis par : Badr Elkhalyly Brahim Khal Allae Eraissi Mouataz Elidrissi Elkhaldi Filire : SMI S4

Encadr par : Mme Sanaa Elfilali

Dans le cadre des exposs programms par notre professeur, il est le tour de vous prsenter un tutorial concernant la gestion via linux, qui vise approfondir les connaissances des tudiants en matire des systmes dexploitation. Lexpos constitue, en priorit la dfinition des processus sous linux, puis on va sattaquer au listage des processus et les syntaxes concernant, aprs on

verra la redirection des fichiers standards, et on va voir comment interagir avec ces processus. Les 4 grands axes de cet expos sont tels que : Dfinition des processus sous linux Lister les processus actif :ps Redirection des fichiers standards Interagir avec les processus

Dfinition des processus sous linux :


En premier lieu, il est ncessaire de dfinir le terme au niveau linguistique. En toute rigueur ce mot indique un programme en cours dexcution par un ordinateur, voire un ensemble dinstructions excuter, ventuellement a peut-tre dautres ressources, comme des descripteurs de fichier, des ports rseaux, etc. . Par ailleurs en linux, il sagit dun programme excut un moment donn, rang sous la forme dun fichier ordinaire excutable. Il existe deux formes de processus : Le processus systme ne sont pas attachs aucun terminal, crs au lancement du systme ou des dates fixes par ladministrateur de systme, interrompus qu larrt, les swappers, les drivers.

Le processus lancs par un utilisateur : processus correspondant lexcution dun interprteur de langage de commande comme le bash. Les caractristiques sont telles que : identification (un nombre entier) un propritaire (des entiers) un groupe propritaire. Terminal dattachement Rpertoire du travail

Lister le processus actif : ps


Tout utilisateur a la possibilit de connatre la liste des processus qui sont attachs son terminal un instant donn, ainsi que les caractristiques de ces processus, au moyen de cette commande. L'exemple suivant illustre cette commande pour un utilisateur qui vient de se loguer:

Il est possible d'avoir de plus amples informations sur les processus en utilisant des options. Par exemple:

Petite dfinition de chaque partie du rsultat:

User: le propritaire du processus, en gnral l'utilisateur qui a lanc le processus ; PID: le numro d'identification unique du processus. Sont attribus dans l'ordre de lancement des processus. Quand ils atteignent 30.000 ou plus, le nombre recommence 0. Les numros de 0 5 sont gnralement des processus de bas niveau du systme d'exploitation qui ne peuvent tre tus ; %CPU: pourcentage du temps de CPU consacr l'excution de ce processus ; %MEM: pourcentage de mmoire totale utilise par ce processus ; VSZ: superficie totale de la mmoire virtuelle, en blocs de 1k ; RSS: taille relle de l'ensemble, le chiffre exact de la mmoire physique alloue ce processus ; TTY: terminal associ ce processus. Le point d'interrogation indique que le processus n'est reli aucun terminal ; STAT: code d'tat du processus. Les diffrents tats sont S repos, R - excution (sur file d'attente), Z - zombie, N - tche de faible priorit ; START: lorsque le processus a t lanc, ceci indique en heures et minutes depuis quand le programme a t lanc, ou indique depuis combien de jours le processus est lanc si ilfonctionne depuis plus d'une journe ; TIME: temps CPU utilis par le processus depuis le dbut du lancement ; COMMAND: le nom de la commande.

Il y a aussi ps -ef qui est quivalent ps aux mais qui a l'avantage de fonctionner sur les versions POSIX qu'on trouve sur les autres systmes Unix.

Interrompre un processus Les processus peuvent tre, en gnral, interrompus par l'envoi d'un signal depuis le terminal. L'mission de ce signal est provoque par la frappe de caractres particuliers que nous dsignerons par CTRL + C. Ce signal pour effet d'interrompre tous les processus attachs au terminal depuis lequel il est mis, sauf demande expresse formule par le processus comme nous le verrons. Un certain nombre de processus n'acceptent pas les interruptions par ces signaux. C'est le cas, par exemple, des processus associs au Shell, dont on ne peut sortir depuis le terminal que par CTRL + D (indiquant par l la fin des donnes interprter). Nous verrons plus loin comment forcer l'interruption de processus de ce type et, par ailleurs, comment crer soimme des tches ayant ces proprits.

La redirection des fichiers standards :


Les processus fournissant des rsultats (par exemple ls, who ou ps) les crivent sur la sortie standard qui est, par dfaut, physiquement associe au terminal de lancement du processus (un fichier spcial /dev/tty"numro du terminal"). De faon analogique, les processus ayant besoin de donnes extrieures, en cours d'excution (par exemple mail, write ou sh) les lisent sur l'entre standard galement associe par dfaut ce terminal. Il est possible d'affecter ces fichiers d'entre et de sortie standards d'autres

dispositifs que la console qui contrle le processus. Ce fichier peut tre un autre fichier spcial ou un fichier ordinaire; la seule contrainte est que l'utilisateur ait l'autorisation d'criture ou de lecture (suivant le cas) sur ledit fichier. La redirection de la sortie standard d'une commande dans un fichier rpond la syntaxe commande > rfrence. Si le fichier existe, il est pralablement supprim.

Il est galement possible d'ajouter des rsultats d'un processus la fin d'un fichier (donc sans effacement de son contenu antrieur) par des commandes de la forme commande >> rfrence comme l'illustre l'exemple suivant:

On constate que la redirection de la sortie standard est sans aucun effet sur le droulement du processus. De fait, lors de l'apparition d'une erreur, le message d'erreur n'est pas envoy sur cette sortie, mais un autre fichier standard appel sortie d'erreur standard galement associe de manire standard au terminal. Il est possible de rediriger cette sortie peu prs de la mme manire que la commande prcdente commande 2 > rfrence ou commande 2 >> rfrence. On peut, de mme, rediriger l'entre standard d'un processus o sont lues les donnes. Cette redirection rpond la syntaxe commande < rfrence.

III-E. Processus parallles et communication

Pour continuer ce premier contact avec l'univers LINUX, nous montrons quelques autres possibilits supplmentaires communes aux diffrents langages de commandes. Ainsi il est tout d'abord possible d'enchainer deux ou plusieurs processus de faon totalement indpendante et en squence, le droulement du premier n'influant pas sur celui du second qui est lanc la fin de son excution.

Les enchanements de commandes que nous venons de voir ont deux caractristiques essentielles: Ils sont squentiels, c'est--dire qu'une commande n'est lance (et le processus associ cr) que lorsque la prcdente est termine; il n'y a aucun paralllisme dans l'excution. Eventuellement, comme c'est le cas des diffrents Shell, un processus en lance un autre et est suspendu jusqu' la fin du processus qu'il a lanc. Les processus sont totalement indpendants, c'est--dire que le droulement de l'un ne dpend pas de celui des prcdents. Il n'y a aucun change d'informations entre les diffrents processus.

Interagir avec les processus :


A un processus donn peut tre envoy un signal. Ceci peut tre vu comme une indication donne au programme de manire asynchrone. Ce dernier terme signifie que le signal doit tre pris en compte immdiatement quelles que soient les oprations en cours de traitement. La personne ayant conu le programme peut dcider du comportement adopter la rception du signal pour remplacer celui par dfaut. La partie du programme responsable de ceci est appele gestionnaire de signal (en anglais signal handler). Un signal sera dsign soit par sa valeur numrique soit par son nom. Etant donn que les valeurs numriques peuvent varier d'un systme un autre, il vaut mieux utiliser le nom. Le tableau suivant liste les signaux les plus utiliss avec leur valeur sur un systme Linux.

Principaux signaux Valeur Comportem Signal numriq ent par Description ue dfaut Terminer le processus Terminer le processus Terminer le processus Terminer le processus Terminer le processus Il s'agit d'une demande venant du clavier, le plus souvent l'aide la combinaison de touches Ctrl-C. Ce signal permet d'arrter tout programme car il ne peut tre gr diffremment que le comportement par dfaut. L'arrt du programme est brutal. Ce signal n'a pas de signification particulire. Il peut tre utilis de manire diffrente par chaque programme. Ce signal est envoy un programme lorsque qu'il tente d'accder un endroit invalide en mmoire. Identique SIGUSR1.

SIGINT 2 SIGKIL 9 L SIGUSR 10 1 SIGSEG 11 V SIGUSR 12 2 SIGTER 15 M SIGCHL 17 D SIGCO 18 NT SIGSTO 19 P

Si le programme n'a pas prvu de grer ce signal, l'arrt sera aussi brutal que pour Terminer le SIGKILL. Mais comme le comportement par processus dfaut peut tre chang, le programme a la possibilit de raliser des oprations avant de se terminer. Ignorer ce Envoy un processus dont un fils est signal arrt ou termin. Permet de faire se continuer un processus Reprendre le qui avait t arrt par exemple l'aide processus de SIGSTOP (voir ci-aprs). Ce signal demande au processus de Arrter le suspendre son excution. Comme SIGKILL, processus ce signal ne peut tre gr diffremment.

Ces signaux sont donc envoys par le sytme un processus pour le prvenir de certains vnements. Mais un utilisateur peut aussi envoyer des signaux grce la commande intgre bash, kill. Elle s'utilise en indiquant le numro de signal l'aide de l'option -s puis du PID du processus. Par exemple : > kill -s SIGSTOP 256 > kill -SIGSTOP 256 Ces deux commandes sont identiques. La deuxime est plus courte utiliser mais ne fonctionne pas sur tous les systmes. L'une comme l'autre enverra le signal SIGSTOP au processus de PID 256.

Si l'on utilise kill sans spcifier de numro de signal, c'est un SIGTERM qui sera envoy. Gnralement lorsque l'on souhaite arrter un programme qui refuse de le faire ou prsente un comportement trange, on commence par essayer de lui envoyer un SIGTERM (avec kill sans option de signal par exemple). Cela permet de lui laisser une chance de se quitter proprement. Si toutefois cela ne fonctionne pas, il faut alors utiliser SIGKILL qui va obligatoirement terminer le processus.