24
Principes de fonctionnement d'UNIX A. EL FERGOUGUI Page 1 www.TelechargerCours.com

Principes de fonctionnement unix

Embed Size (px)

DESCRIPTION

Principes de fonctionnement unix, Tâches différées, Boot et lancement du noyau, Processus init, Services et démons, Services et démons, Les runlevels, Scripts de lancement des services

Citation preview

Page 1: Principes de fonctionnement unix

Principes de fonctionnement

d'UNIXd'UNIX

A. EL FERGOUGUI

Page 1www.TelechargerCours.com

Page 2: Principes de fonctionnement unix

plan

• Tâches différées

• Boot et lancement du noyau

• Processus init

• Services et démons• Services et démons

• Les runlevels

• Scripts de lancement des services

Page 2www.TelechargerCours.com

Page 3: Principes de fonctionnement unix

Exécution d’une tâche en différé

• Rapporter l’exécution d’une tâche à une date précise

• Commande at et batch

• Syntaxeat <heure> cmdsat <heure> cmds<heure> heure de lancementcmds fichier qui contient les commandes à exécuter

• Exempleat 4 am < fichier-comds

• batch <nom-fichier>

Page 3www.TelechargerCours.com

Page 4: Principes de fonctionnement unix

Page 4www.TelechargerCours.com

Page 5: Principes de fonctionnement unix

Supprimer des tâches en différées

• at -r <tache>

supprime les tâches par leur n°

attention: c’est une tâche administrative

• at –l <taches>• at –l <taches>

donne la liste des n° de tache

Page 5www.TelechargerCours.com

Page 6: Principes de fonctionnement unix

Commande crontab

• /etc/cron

• Fonctionexécuter des commandes à date et heure fixe

• Syntaxecrontab option fichier_crontabcrontab option fichier_crontab

• Options-r détruit un fichier crontab utilisateur du répertoire courant-l liste les fichiers crontab de l'utilisateur en question

Page 6www.TelechargerCours.com

Page 7: Principes de fonctionnement unix

suite

• Remarques

* le fichier /user/lib/cron/cron.allow

contient les utilisateurs autorisés à utilisés

crontabcrontab

* le fichier /user/lib/cron/cron.deny

contient les utilisateurs non autorisés à utilisés

crontab

Page 7www.TelechargerCours.com

Page 8: Principes de fonctionnement unix

suite

• Fichier crontab

chaque ligne de ce fichier à le format suivant:

mm hh dd mm jj commande

mm minute d'activation de la commande : 00 à mm minute d'activation de la commande : 00 à

59 * veut dire n'importe quelle minute

hh heure d'activation de la commande :0-23

dd jour d'activation de la commande :1-31

mm mois d'activation de la commande :1-12

jj jour de la semaine : 0�dim, 1�lun,…, 6�sam

Page 8www.TelechargerCours.com

Page 9: Principes de fonctionnement unix

exemples

• Exemple de fichier crontab

0 0 * * 1 commande

exécuter la commande chaque lundi à minuit

0,15,30,45 * * * * commande0,15,30,45 * * * * commande

exécuter la commande tout les ¼ d'heure

0 18 * * 1-6 commande

tout les jours de la semaine à 18 h sauf

dimanche

Page 9www.TelechargerCours.com

Page 10: Principes de fonctionnement unix

Exemple 2

• 0 23 * * 1-5 /bin/tar –cvf archive

/usr/users/brahim/data

0 12 * * * /bin/wall < /usr/users/brahim/f00 12 * * * /bin/wall < /usr/users/brahim/f0

avec f contien le message " il est temps de

déjouner"

Page 10www.TelechargerCours.com

Page 11: Principes de fonctionnement unix

Boot et lancement du noyau• Au boot le BIOS exécute le MBR (Master Boot Reccord)

situé sur le premier secteur (512 octets) du support bootable choisi (disque, CD, clef USB, ...)

• Le MBR :

- scanne le disque pour trouver LA partition bootable(flag)

- lance le boot loader (chargeur de démarrage) du secteur de boot (premier secteur) de la partition bootablede boot (premier secteur) de la partition bootable

• Le bootloader :

- charge le noyau en mémoire et l'exécute

- charge le ramdisk initrd.img en mémoire

• 2 bootloader possibles: Lilo (Linux Loader) Grub (Grand Unified Bootloader)

Page 11www.TelechargerCours.com

Page 12: Principes de fonctionnement unix

Lancement du système : boot -> init

• Une fois le noyau chargé en mémoire, il lance le premier processus : /bin/init

• init est le père de tous les autres processus qui seront créés par l'appel system fork()

• init lit le fichier /etc/inittab pour savoir :

- quel est le fichier à exécuter pour continuer le - quel est le fichier à exécuter pour continuer le hargement du système

- quel est le runlevel (niveau d'exécution) par défault

- comment lancer les services pour un runlevel donné

- ...

Page 12www.TelechargerCours.com

Page 13: Principes de fonctionnement unix

Exple de fichier /etc/inittabformat des lignes: id:runlevels:action:process

# inittab This file describes how the INIT process should set up

# the system in a certain runlevel.

# Default runlevel. The runlevels used by Mandrakelinux are:

# 0 halt (Do NOT set initdefault to this)

# 1 Single user mode

# 2 Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 Full multiuser mode

# 4 unused

# 5 X11

# 6 reboot (Do NOT set initdefault to this)

id:5:initdefault:

# System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0

Le niveau d'exécution par défaut

Les niveaux d'exécution possibles

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

# Trap CTRLALTDELETE

ca::ctrlaltdel:/sbin/shutdown -t3 r now

... ...# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

Action à faire sur l'évènement CTRL-ALT-DEL

Pour les niveaux 2 à 5, activer plusieurs

consoles en mode caractère

Page 13www.TelechargerCours.com

Page 14: Principes de fonctionnement unix

Exple de fichier /etc/inittabformat des lignes: id:runlevels:action:process

# The default runlevel.

id:2:initdefault:

# Boottime system configuration/initialization script.

# This is run first except when booting in emergency (b) mode.

si::sysinit:/etc/init.d/rcS

# What to do in singleuser mode.

~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change

# of runlevel.

# Runlevel 0 is halt, 1 is singleuser, 2 - 5 are multiuser, 6 is reboot.

l0:0:wait:/etc/init.d/rc 0

l1:1:wait:/etc/init.d/rc 1

... ...l5:5:wait:/etc/init.d/rc 5

Le niveau d'exécution par défaut

Les niveaux d'exécution possibles

l5:5:wait:/etc/init.d/rc 5

l6:6:wait:/etc/init.d/rc 6

# What to do when CTRLALTDEL

is pressed.

ca:12345:ctrlaltdel:/sbin/shutdown t1 -a -r now

1:2345:respawn:/sbin/getty 38400 tty1

2:23:respawn:/sbin/getty 38400 tty2

3:23:respawn:/sbin/getty 38400 tty3

4:23:respawn:/sbin/getty 38400 tty4

5:23:respawn:/sbin/getty 38400 tty5

6:23:respawn:/sbin/getty 38400 tty6

Action à faire sur l'évènement CTRL-ALT-DEL

Pour les niveaux 2 à 5, activer plusieurs

consoles en mode caractère

Page 14www.TelechargerCours.com

Page 15: Principes de fonctionnement unix

Exemples d'actions courantes pour le

fichier inittab :• respawn Le processus est redémarré à chaque fois qu'il se

termine

• wait Le processus n'est démarré qu'une seul fois

• boot Le processus est exécuté pendant le démarrage du système

• initdefault indique le mode de démarrage une fois le • initdefault indique le mode de démarrage une fois le système opérationnel. Si aucun n'existe, init demandera un runlevel sur la console

• sysinit Le processus est exécuté pendant le démarrage du système. Il est exécuté avant les entrées boot ou bootwait

• ctrlaltdel Le processus est exécuté lorsque init reçoit le signal SIGINT. (appui simultané des touches CTRL+ALT+DEL)

Page 15www.TelechargerCours.com

Page 16: Principes de fonctionnement unix

Nouveau mécanismeinit � � upstart

Ce nouveau mécanisme utilise la notion de job et d'événement. Les actions à réaliser sont définies au sein d'un job, par un script shell. Le job contient une liste d'actions sur ce qu'il doit faire lorsqu'un événement donné se produit.faire lorsqu'un événement donné se produit.Les jobs sont placés dans /etc/events.d, dont voici une liste typique

logd rc0 rc0-poweroff rc2 rc4 rc6 rcS-sulogin tty1 tty3 tty5 control-alt-delete rc-default rc0-haltrc1 rc3 rc5 rcS sulogin tty2 tty4 …

Page 16www.TelechargerCours.com

Page 17: Principes de fonctionnement unix

services et démonsLancement du système : boot -> init -> modules/services

Après le chargement du noyau, le script correspondant à sysinit dans fichier inittab est chargé :

- Mandrake : /etc/rc.d/rc.sysinit

- Debian : /etc/rc.d/rcS lance les scripts /etc/rcS.d/S??*

Ce script d'initialisation est chargé de 2 tâches fondamentales :fondamentales :

- charger les modules dans le noyau (gestion des périphériques)

- démarrer les services en exécutant les processus

«Deferred Auxiliary Executive Monitor» (daemons) correspondant, en français : démons

Page 17www.TelechargerCours.com

Page 18: Principes de fonctionnement unix

Exemple de démons :kswapd swap mémoire <-> disque

kflusd écriture physique des données

nfsd serveur fichiers réseaux (NFS)

portmap mise en correspondance numéro de ports TCP/IP <-> numéro de processus RPC

xinetd super-serveur de gestion des services réseau

ftpd serveur de transfert de fichiers (FTP)ftpd serveur de transfert de fichiers (FTP)

httpd serveur HTTP

Les démons peuvent implémenter :

- un service noyau (kswapd, ...)

- un service réseau (httpd, ...)

Page 18www.TelechargerCours.com

Page 19: Principes de fonctionnement unix

les runlevels• le répertoire /etc/init.d contient tous les scripts

de gestion des services installés

• les lignes «/etc/rc.d/rc x» du fichier /etc/inittabdéterminent le lancement des scripts pour le runlevel x

• Le runlevel de l'action initdefault est lancé par le ligne correspondanteligne correspondantel0:0:wait:/etc/init.d/rc 0

l1:1:wait:/etc/init.d/rc 1

... ...l5:5:wait:/etc/init.d/rc 5

l6:6:wait:/etc/init.d/rc 6

Page 19www.TelechargerCours.com

Page 20: Principes de fonctionnement unix

les runlevels

• Le runlevel (numéro de 0 à 6) fixe le répertoire de démarrage des services :

- Mandrake -> répertoires /etc/rc.d/rc[06].d

- Debian -> répertoires /etc/rc[06].d

• rcX.d : contient des liens symboliques vers les scripts de gestions des services qui sont dans scripts de gestions des services qui sont dans le répertoire :

- /etc/rc.d/init.d (Mandrake, + lien symbolique vers /etc/init.d)

- /etc/init.d (Debian/Ubuntu)

Page 20www.TelechargerCours.com

Page 21: Principes de fonctionnement unix

les runlevels

• Les liens sont formés selon la syntaxe :

[S|K]XX<nom_du_script>

- S lance le script avec l'argument start

(démarrage du service)

- K lance le script avec l'argument stop (arrêt du

service)service)

- XX est un rang qui fixe l'ordre dans lequel les

scripts sont lancés

Page 21www.TelechargerCours.com

Page 22: Principes de fonctionnement unix

Scripts de lancement• Extrait du fichier /etc/init.d/rc

for i in /etc/rc$runlevel.d/K[09][ 09*[ ; do

[ ! F $i ] && continue

# Stop the service.

startup $i stop

done

fi

# Now run the START scripts for this runlevel.

for i in /etc/rc$runlevel.d/S* ; do

[ ! F $i ] && continue

... ...suffix=${i#/etc/rc$runlevel.d/S[09][ 09[{stop=/etc/rc$runlevel.d/K[09][

09[$ suffix09[$ suffix

previous_start=/etc/rc$previous.d/S[09][

09[$suffix

#case "$runlevel" in

0|6)

startup $i stop

;;

*)

startup $i start

;;

esac

done

•fi

Page 22www.TelechargerCours.com

Page 23: Principes de fonctionnement unix

Exemple de contenu du répertoire

/etc/rc5.d lrwxrwxrwx 1 root root 14 20050919 09:42 S20apmd ->

../init.d/apmd

lrwxrwxrwx 1 root root 16 20050918 19:11 S20dbus1 -> ../init.d/dbus1

lrwxrwxrwx 1 root root 17 20050918 19:11 S20dirmngr -> ../init.d/dirmngr

lrwxrwxrwx 1 root root 17 20050918 19:11 S20dirmngr -> ../init.d/dirmngr

lrwxrwxrwx 1 root root 15 20050918 20:03 S20exim4 -> ../init.d/exim4

lrwxrwxrwx 1 root root 15 20050918 20:03 S20inetd -> ../init.d/inetd

lrwxrwxrwx 1 root root 13 20050918 19:10 S20lpd -> ../init.d/lpd

Page 23www.TelechargerCours.com

Page 24: Principes de fonctionnement unix

Lancement du système : boot -> init ->

services• Utilitaires en mode console :

- Debian : updaterc.d

- Mandrake : chkconfig, service

• le script /etc/rc.local peut contenir des personnalisations locales qui seront lancées à la fin du processus init

• Pour démarrer un service sous mandrake, on peut taper :• Pour démarrer un service sous mandrake, on peut taper :

service <nom_du_service> start

ou encore :

/etc/rc.d/init.d/<script_correspondant_au_service> action

action : starp | stop | restart | status | ...

Page 24www.TelechargerCours.com