www.misfu.com : Cours et Formation Informatique et logiciels, apprendre et télécharger gratuitement
 Cours informatique



  • Télécharger des cours
  • Cours Débutant
  • Cours Internet
  • Cours Ergonomie
  • Cours Linux
  • Cours Réseaux
  • Cours JavaScript

  • Forum informatique
  • Annuaire informatique
  • Annuaire internet

    Cours Bureautique

  • Cours Excel
  • Cours Word
  • Cours PowerPoint
  • OpenOffice (Texte)
  • OpenOffice (Tableur)

    News et astuces

  • Test et comparatif ADSL
  • News informatique
  • Astuces Windows





  • Gestion des services et des daemons


    Accueil > Cours Linux > Gestion des services et des daemons


     Gestion des services et des daemons sous Linux
       

    Gestion des services

    Dans le répertoire /etc/rc.d/init.d on trouve des scripts permettant de lancer des services. Ce sont les daemons. Dans chaque script il y a une petite description de ce que le daemon (ou service) est sensé faire. On peut activer ou désactiver ou redémarrer ou voir l'état d'un service de la façon suivante :


    /etc/rc.d/init.d/ start

    /etc/rc.d/init.d/ stop

    /etc/rc.d/init.d/ restart

    /etc/rc.d/init.d/ status


    ou plus simplement en tapant :


    service start ou stop...


    Cela convient pour un service que l'on active ou désactive occasionnellement de façon manuelle ; dans ce cas on peut avoir besoin de le contrôler pour voir si le service donné tourne bien (son statut).


    On peut charger également les services automatiquement à chaque démarrage et ce de deux façons :

    - Soit en créant des liens dans le répertoire du runlevel correspondant

    - Soit en utilisant la commande chkconfig.


    Notion de runlevel ou niveau d'exécution

    Dans chaque distribution linux on trouve dans /etc/inittab les différents niveaux d'exécution (runlevel en anglais) et leurs utilités.


    Par exemple sous une mandriva (c'est la même chose pour une redhat) on a, en regardant dans le fichier /etc/inittab :

    ...

    # 0 - halt

    # 1 - Single user mode

    # 2 - Multiuser, without NFS

    # 3 - Full multiuser mode

    # 4 - unused

    # 5 - X11

    # 6 - reboot

    ...

    Sous une slackware on trouve ceci:

    ...

    # 0 - halt

    # 1 - Single user mode

    # 2 - Multiuser, without NFS

    # 3 - Full multiuser mode

    # 4 - X11

    # 5 - unused

    # 6 - reboot

    ...


    Bref pour chaque distribution on trouve son système de runlevels.


    En observant bien ces différents runlevels on peut dire que chaque runlevel correspond à un état de la machine. Pour la mandriva le runlevel 0 sert à arrêter la machine, le runlevel 1 est le mode de maintenance où seul le root peut se logger et un minimum de service tourne (attention à la sécurité), le runlevel 3 est destiné à une utilisation multi-utilisateur mais en mode texte, le runlevel 5 est la même chose que le runlevel 3 mais en mode graphique, le 6 pour rebooter la machine.


    Ici les niveaux les plus utilisés sont le runlevel 3 et 5. En général il n'est pas intéressant de lancer des services aux runlevels 6 ou 0.


    Dans le répertoire /etc/ se trouve les répertoires rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, rc6.d. Ils correspondent chacun à un runlevel.


    En listant le répertoires rc3.d : avec la commande ls on obtient :


    K10webmin@

    S10network@

    S56xinetd@

    S71sound@

    S80postfix@

    S92crond@

    S99local@

    S11portmap@

    S55sshd@

    S65dhcpd@

    S75keytable@

    S85numlock@

    S91smb@


    Cela représente les différents services lancés au runlevel 3. On peut remarquer qu'ils commencent tous par une lettre, elle détermine si le service ou daemon) est activé (S pour Start) ou non (K pour Kill). Le chiffre précise le niveau d'ordre d'exécution (ici par exemple le service network et activé avant portmap). À la fin de chaque service on remarque la présence de @ qui veut dire que c'est un lien qui pointe vers un autre fichier, dans notre cas le service pointe vers le script qui active le démon dans le répertoire /etc/rc.d/init.d


    Pour mieux comprendre on peut taper ls -l et là on voit vers quoi pointent nos liens :


    ...

    lrwxrwxrwx 1 root root 17 oct 3 21:58 S10network -> /etc/rc.d/init.d/network*

    ...


    Dans le répertoire /etc/rc3.d/ (ou dans n'importe quel autre répertoire de runlevel) on peut créer de nouveaux services à lancer de la façon suivante : on se place dans le répertoire /etc/rc3.d puis on tape :


    ln -s /etc/rc.d/init.d/ S##


    Attention, on écrit le nom du service sans les crochets<>

    Ici ## représente l'ordre d'exécution.

    Pour au contraire désactiver un service on remplace S par K.


    Utilisation de chkconfig

    Si on utilise la méthode précédente pour activer un démon nouvellement installé, il faudra passer par tous les runlevels utilisés et à chaque fois tout taper. C'est assez fastidieux.

    Heureusement il y a la commande chckonfig qui s'utilise de la manière suivante :


    chkconfig --add


    Cela aura pour effet de rajouter le démon du service dans tous les runlevels.

    On peut procéder de façon plus fine, on utilisant :


    chkconfig --level 123456 on/off


    Exemple : Nous voulons activer le démon samba (smb) au runlevel 3 et 5, dans les autres runlevels nous voulons qu'il soit désactivé. On tape :


    # chkconfig --level 35 smb on


    # chkconfig --level 01246 smb off



    Dans le cas où on n'est plus très sûr de ce que l'on a fait on tape :


    # chkconfig --list


    Avec cette option la commande chkconfig liste tous les services avec leurs statuts à tous les runlevels.


    Mais si on ne veut lister qu'un seul démon on tape :


    # chkconfig --list


    Pour plus d'info: man init, man chkconfig


    Il va sans dire que la commande chkconfig facilite beaucoup la tâche. Cependant si on doit se taper tout ça à la main pour l'ensemble des services, on n'est pas sorti de l'ornière. Miracle ! Linux a pensé à nous, et pour se simplifier la tâche, on a plusieurs outils: Linuxconf via Panneau de configuration/gestion des services (qui stop ou arrete un deamon pour tous les runlevels), Runleveleditor (qui permet de choisir pour chaque runlevel les deamons à activer ou non), ntsysv, Ksys, etc...Bref on a l'embaras du choix ;-)


    Un exemple de daemon : /etc/rc.d/init.d/crond

    #! /bin/bash

    #

    # crond Start/Stop the cron clock daemon.

    #

    # chkconfig: 2345 90 60

    # description: cron is a standard UNIX program that runs user-specified

    # programs at periodic scheduled times. vixie cron adds a

    # number of features to the basic UNIX cron, including better

    # security and more powerful configuration options.

    # processname: crond

    # config: /etc/crontab

    # pidfile: /var/run/crond.pid


    # Source function library.

    . /etc/init.d/functions


    RETVAL=0


    # See how we were called.

    prog="crond"


    start() {

    gprintf "Starting %s: " "$prog"

    daemon crond

    RETVAL=$?

    echo

    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/crond

    return $RETVAL

    }


    stop() {

    gprintf "Stopping %s: " "$prog"

    killproc crond

    RETVAL=$?

    echo

    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/crond

    return $RETVAL

    }


    rhstatus() {

    status crond

    }


    restart() {

    stop

    start

    }


    reload() {

    gprintf "Reloading cron daemon configuration: "

    killproc crond -HUP

    retval=$?

    echo

    return $RETVAL

    }


    case "$1" in

    start)

    start

    ;;

    stop)

    stop

    ;;

    restart)

    restart

    ;;

    reload)

    reload

    ;;

    status)

    rhstatus

    ;;

    condrestart)

    [ -f /var/lock/subsys/crond ] && restart || :

    ;;

    *)

    gprintf "Usage: %s {start|stop|status|reload|restart|condrestart} " "$0"

    exit 1

    esac


    exit $?



    Faire du ménage

    A titre informatif, voici une liste (non exhaustive) de quelques daemons et de leurs fonctions.


    Nom du service

    Commentaires

    apmd

    Nécessaire uniquement pour les ordinateurs portables

    xntpd

    Network time protocol

    portmap

    Nécessaire si vous utilisez un service rpc, comme NIS ou NFS

    sound

    Configuration des sons (la carte peut fonctionne r très bien sans si le fichier /etc/modules.conf est bien conçu

    netfs

    C'est le client nfs, utilisé pour mounter des filesystems depuis un serveur nfs

    rstatd , rusersd, rwhod, rwalld

    Ne pas exécuter tous les services car ils fournissent trop d'informations aux utilisateurs à distance

    bootparamd

    Utilisé par les clients sans lecteur de disquette (vulnérable)

    squid

    Serveur proxy

    yppasswdd

    Nécessaire si vous êtes un serveur NIS (extrêmement vulnérable)

    ypserv

    Nécessaire si vous êtes un serveur NIS (extrêmement vulnérable)

    dhcpd

    Démarre le daemon du serveur dhcp

    atd

    Utilisé pour le service at, similaire à cron, mais n'est pas nécessaire

    pcmcia

    Parle de lui-même

    snmpd

    Daemon SNMP, peut donner à des utilisateurs distants des informations détaillées sur votre système

    named

    Serveur DNS

    routed

    RIP, n'exécutez cela que si vous en avez vraiment besoin

    lpd

    Services d'impression

    mars-nwe

    Fichier Netware et serveur d'impression

    nfs

    Utilisé pour le serveur NFS, lancez le que si vous en avez absolument besoin

    amd

    Daemon AutoMount, sert à mounter les filesystems distants

    gated

    Sert à lancer d'autres protocoles de routage comme OSPF

    sendmail

    Vous pourrez toujours envoyer/recevoir des emails par Netscape (ou autre) sans lui.

    httpd

    Serveur web Apache

    ypbind

    Nécessaire si vous êtes un client NIS

    xfs

    Xfont server (indispensable si vous êtes sous X).

    innd

    Serveur de news

    arpwatch

    Off par défaut. Rapport d'activité de datagrammes IP via mail

    kudzu

    Détection des periphériques. A réactiver à l'occasion

    anacron

    Reprise de jobs de la crontab après un crash

    crond

    Si vous ne savez pas ce qu'est une crontab, désactivez-le.

    rawdevices

    Partitions spécifique sous ORACLE ou autre SGBD

    random

    Améliore la génération aléatoire de nombres (peut être utile pour les joueurs)

    rhnd

    Redhat network

    linuxconf

    On peut utiliser linuxconf sans ce daemon (peut être est-ce utile pour l'administration à distance ?)

    nfslock

    Si vous n'êtes pas serveur NFS, désactivez-le

    usb

    Parle de lui-même

    gpm

    Fournit des fonctions pour le support de la souris en mode texte (utile pour midnight commander)



    Bibliographie

    1 - Site Esprit-Libre - Les Runlevels sous Linux et utilisation de Chkconfig - Par Salim - http://www.esprit-libre.net/configuration/level.php3


    2 - Site Linux Electronique Aide - Gestion des daemons - Par Philippe - http://www.lea-linux.org



    Par l'équipe technique A.N.F.A


    Vous pouvez également faire héberger vos tutoriaux sur le site Misfu, il vous suffit de nous les envoyer







     Initiation Linux

  • Philosophie Linux
  • Caractéristiques
  • Interfaces graphiques
  • Utiliser KDE
  • Gestion des fichiers
  • Pré-requis installation
  • Installer Linux
  • Outils multimédia
  • Linux & internet

     Administration Linux

  • Configurer Lilo
  • Gestion utilisateur
  • Packages sous Linux
  • Daemons et Linux
  • Routage IP
  • Commandes réseaux
  • Poste en réseau
  • Sécurité et Linux
  • Système NFS
  • Planification des tâches
  • Compilation noyau Linux
  • SAMBA et Linux
  • Utiliser le DNS
  • Récupérer mdp root
  • Utiliser Grep
  • Recherche et archivage
  • DHCP et Linux

     Divers

  • Midnight-Commander (MC)
  • Equivalence logiciel Linux/Windows
  • Editeur de texte VI
  • Créer un RPM
  • Commandes Linux
  • Commandes Unix
  • Commandes Bash
























  • Tous les Logos et Marques sont déposés, les commentaires sont sous la responsabilité de ceux qui les ont publiés, le reste © www.misfu.com.