Académique Documents
Professionnel Documents
Culture Documents
Il est défini par son espace d'adressage ainsi que tous les threads se partagent le même espace
d'adressage, donc les mêmes données.
Une système moderne permet la présence et "l'exécution" de plusieurs processus en même temps
(multitâches). On peut se demander quel est l'intérêt de la présence de plusieurs taches en même
temps, puisque le nombre de processeur est fixe. La réponse est double :
En exploitant correctement le multitâche, on peut aisément multiplier la productivité d'un système. Par
exemple, si un programme attend une lecture d'un fichier, qu'un autre attend que l'imprimante soit
prête pour lui envoyer des données, qu'encore un autre attende les données provenant d'Internet par le
modem, qu'encore un autre envoie ses données par petits paquets et de temps en temps au graveur de
CD, et bien on peut encore faire travailler un programme de calcul ! On multiplie ainsi par cinq la
rentabilité de la machine. Un autre exemple classique est le fait de lancer un programme long et
consommateur de ressources en arrière plan, et de travailler avec un programme demandant peu de
puissance de calcul en avant plan. Par exemple, un traitement de texte ne consomme normalement
quasiment aucune ressource processeur, puisqu'il passe son temps à attendre la saisie du texte.
umask : les droits par défaut sur les fichiers crées par le processus
Une fois un processus lancé, le système lui affecte non seulement une identification numérique unique
portant le nom de PID (Process Identifier) permettant de le reconnaître dans la masse des processus
mais aussi un héritage. En effet lorsqu'un processus est lancé celui-ci fait partie d'une descendance,
tout processus est le "fils","le petit fils", ou "l'arrière-petit-fils" d'un processus père dénommé "init".
C'est le premier processus lancé par le système et c'est lui qui prend en charge l'exécution de
l'ensemble des processus lancés par l'utilisateur par l'intermédiaire de l’interpréteur de commande.
Ainsi le processus init a un pid égale à 1. De même qu'il existe des commandes indiquant l'état d'un
processus, il existe des commandes mettant en évidence l'arbre généalogique d'un processus existant.
3. pstree : Permet de lister les processus dans un arbre indiquant les liens de parentés
entre eux
5. tee : inséré dans un pipeline pour disposer d’une sortie annexe. Tee lit les données
sur son entrée standard et les recopie sur sa sortie standard, tout en envoyant une
copie dans les fichiers dont le nom lui est fourni en argument. Il est possible d’utiliser
le fichier /de/tty pour obtenir à l’écran des données qui transitent par le pipeline.
6. xargs : lit des lignes de texte sur son entrée standard, les regroupe pour les
transmettre en argument avant de lancer une autre commande.
La commande ps permet de récupérer les informations sur les processus. Aussi cette commande (en
fonction des options passées) donne les informations suivantes :
RSS : Quantité totale de mémoire occupée par la tâche (les bibliothèques chargées
sont comptabilisées)
STAT : Ce champ identifie par des lettres les différents états possibles pour un processus (D :
En sommeil (kernel), R : En cours d'exécution, S : En sommeil, T : Stoppé, Z : Zombie etc.)
La commande permettant le détachement des processus est : disown et possède un paramètre qui est le
PID du processus.
Les commandes permettant de contrôler les priorités des processus sont nice et renice.
nice priorité : Permet d'affecter une priorité aux processus dès leur lancement. Avec l'option -
n N la commande ajuste la priorité par défaut à N
renice priorité : Permet de modifier la priorité d'un processus alors que celui- ci est déjà lancé.
Par exemple l'option -u "User" : change la priorité de tous les processus d'un utilisateur
Pour gérer les accès à ces commandes, l'administrateur dispose de fichiers de permissions situés dans
le répertoire /etc : cron.allow et at.allow qui définissent les autorisations et cron.deny et at.deny les
refus.
Les fichiers cron.deny et at.deny existent : les utilisateurs dont les noms sont présents ne
peuvent exécuter les commandes les autres oui.
La commande crontab permet de créer un fichier crontab possédant les différentes requêtes que
l'utilisateur veut effectuer. Ce fichier porte le nom de l'utilisateur et est stocké dans le répertoire
/var/spool/cron avant d'être exécuté par crond. Cette commande permet notamment d'éditer le fichier
et d'en supprimer le contenu.
-u utilisateur : Installation du fichier crontab pour utilisateur (nécessaire d'être root pour
l'utiliser)
-e : Modification du fichier crontab à l'aide de l'éditeur spécifié par les variables VISUAL ou
EDITOR
Le fichier crontab créé par l'utilisateur est composé de cinq champs marquant la périodicité et la
commande à effectuer. Ces champs sont :
La périodicité de chacun de ces 5 champs est représentée par des valeurs numériques :
minutes (0-59)
heures (0-23)
date (0-31)
mois (1-12)
/ : permet de spécifier tous les x temps (exemple: */2 dans la colonne des jours veut dire
chaque 2 jours).
1.10.2. Le fichier crontab système
Le fichier /etc/crontab est également lu par le daemon crond et est différent du format d'un fichier
crontab ordinaire, en effet celui-ci possède des informations d'environnement qui précèdent
généralement ses entrées (cela est aussi permis pour les fichiers crontab ordinaires mais ce n'est pas
souvent utilisé). Après les cinq champs initiaux se trouve le nom d'un utilisateur pour lequel la
commande doit être appelée.
Ce fichier est généralement utilisé pour appeler les scripts contenus dans les répertoires "cron.periode"
se situant dans le répertoire /etc :
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
L'autre différence du fichier système crontab est qu'il fait appel à une commande particulière : run-
parts. Cette commande prend en argument un nom de répertoire et appelle tous les programmes
compris dans ce répertoire (le programme run-parts se trouve dans /usr/bin et n'est accompagné
d'aucune documentation en ligne).
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/bin:/usr/sbin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * * root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Ainsi, chaque matin, à 4:02, tous les scripts (ou programmes du répertoire /etc/cron.daily sont
exécutés. Le répertoire cron.daily est créé lors de l'installation de votre distribution et contient des
scripts servant à nettoyer les répertoires temporaires et à exécuter d'autres tâches de maintenance.
1.10.3. La commande at
Cette commande est un outil pratique pour planifier un seul évènement futur.
Exemple :
luser@localhost $ at 6:00 ;
mail util1 < coucou.msg
la commande atq (pour at queue, la file d'attente de at), fournit une liste des travaux at
actuellement en cours. Tout utilisateur privilégié (root) peut entrer un nom d'utilisateur comme
argument pour obtenir les travaux en cours d'autres utilisateurs.
la commande atrm est utilisée pour éliminer les travaux at en cours. L'atJobID s'affiche
lorsque le travail est soumis ainsi qu'à la demande de la commande atq. Tout utilisateur
privilégié peut éliminer les travaux at d'autres utilisateurs en fournissant le nom d'utilisateur
(user ID) de ceux-ci.
Pour obtenir la liste des signaux disponibles, il suffit de taper dans l'invite de commande du shell : kill
-l
SIGHUP (1) : Ce signal est envoyé directement lors de la déconnection à un modem ou oblige
un daemon à relire son fichier de configuration
SIGKINT (2) : équivalent au Ctrl-C et met fin à l'exécution d'un processus
SIGKILL (9) : Tue un processus de manière immédiate. Ce signal est à envoyé dans des
mesures drastiques et ne peut être ignoré par le processus