Forum Linux.debian/ubuntu Initscripts, archivage et kernel

Posté par  .
Étiquettes :
0
29
sept.
2006
Bonjour,


J'utilise la distribution Debian depuis quelques années cependant j'ai 2 ou 3 questions auxquelles je n'ai jamais trouvé la réponse.

Concernant les scripts d'init:
- Existe-t-il un moyen de retrouver le numéro de lancement d'un démon ? En effet si je détruis le lien SXXapache2 par exemple, et que plus tard je souhaite le remettre, il n'y a, à ma connaissance, aucune façon simple de retrouver la valeur du XX. C'est donc à l'administrateur de gérer ça avec prudence, ce qui me semble un peu dommage comparé à d'autres distributions qui codent ces valeurs dans le script de démarrage.

- Je trouve un peu incohérant que certains scripts de démarrage possèdent dans un fichier de configuration /etc/default/XXX une variable du style ON_BOOT=No permettant de désactiver le lancement du serveur. Ce mécanisme semble un peu redondant avec les principes des niveaux d'exécution.
De plus en lançant le script à la main le serveur ne se lance pas non plus, et bien souvent sans même afficher un message d'avertissement. Le pire est que ceci n'est pas uniformisé, certains scripts n'ayant pas de variable ON_BOOT.

Concernant l'archivage des logs:
- Pour quelle raison deux méthodes d'archivage de logs cohabitent sous Debian: savelog pour certains fichiers et logrotate pour d'autres ?

Concernant la mise à jour du kernel:
- Qu'est ce qui conditionne la montée de version du noyau ? En effet lors de mises à jour il arrive que la version du noyau reste la même (passage de 2.6.8-3-XX vers 2.6.8-3-YY) alors que d'en d'autres cas la version change (2.6.8-2 vers 2.6.8-3) ?
Je trouve cela un peu dommage car la méthode de mise à jour du noyau n'est pas toujours la même (apt-get upgrade dans le premier cas, apt-get dist-upgrade dans l'autre). De plus étant une opération délicate (nécessite un reboot) je préfère quand cette mise à jour se fait avec une commande différente de la mise à jour des autres paquets.

Merci d'éclairer ma lanterne.
  • # Initscripts, archivage et kernel

    Posté par  (site web personnel) . Évalué à 3.

    Concernant les scripts d'init:

    Pour conserver les numéros il te suffit de renommer S45test en 45test, comme ca tu sais qu'il existe encore, tu sais quel numéro il avait et un simple mv peut revenir à l'état désiré. Mais ceci reste de la bidouille valable pour d'autres, la vraie solution sous debian etant d'utiliser update-rc.d qui met à jour tous les rcX.d. Sinon, le comportement normal est simplement d'avoir des K à la place des S quand tu ne veux pas lancer un service (ce que fait update-rc.d).


    Concernant l'archivage des logs:

    Debian te laisse toujours le choix, à toi d'installer le systeme de sauvegarde des logs que tu préfère. Si celui-ci n'est pas supporté par un des paquets, ouvre un bug de type wishlist à son mainteneur.


    Concernant la mise à jour du kernel:

    Le numéro de version du noyau est dans le nom du paquet. Ce qui fait qu'un simple upgrade n'en change pas la version. C'est uniquement lorsque c'est décidé explicitement (apt-get install ou si dist-upgrade considere qu'il faut le faire) qu'un paquet "différent" est installé.
    • [^] # Re: Initscripts, archivage et kernel

      Posté par  (site web personnel) . Évalué à 3.

      J'ajouterai quand même sur les mise à jours kernel, que dans le cas où ce sont des modifications Debian (pour mise à jour de sécurité par exemple), seul la version du paquet change et pas le nom :

      Exemple : noyau 2.6.18 version 2.6.18-1 à 2.6.18-2

      Dans ce cas le noyau est mis à jour par un simple upgrade
    • [^] # Re: Initscripts, archivage et kernel

      Posté par  (site web personnel) . Évalué à 1.

      la vraie solution sous debian etant d'utiliser update-rc.d qui met à jour tous les rcX.d.

      Non update-rc.d ne permet pas de retrouver la priorité 'optimale' / 'normale' d'un processus d'init.

      Il ne fait que faire ce qu'on lui demande, ex
      # update-rc.d apache2 defaults 91
      Installera le script d'init d'apache2 en priorité 91 pour le start (S) et le stop (K) (vient de kill)
      ligne extraite de /var/lib/dpkg/info/apache2-mpm-worker.postinst

      # update-rc.d apache2 defaults
      Installera le meme script mais avec la prioritée par default cad 99

      Sinon, le comportement normal est simplement d'avoir des K à la place des S quand tu ne veux pas lancer un service (ce que fait update-rc.d).

      Non plus le K indique que l'on veut tuer le processus lorsque l'on quitte le runlevel en cours.
      Les scripts 'K' sont appellés avec l'argument 'stop' dans l'ordre inverse de la priorité de lancement.

      Pour repondre a la question initiale:

      - Je trouve un peu incohérant que certains scripts de démarrage possèdent dans un fichier de configuration /etc/default/XXX une variable du style ON_BOOT=No permettant de désactiver le lancement du serveur. Ce mécanisme semble un peu redondant avec les principes des niveaux d'exécution.


      Effectivement, cela dépend bcp du mainteneur du package et c'est dommage.

      De plus en lançant le script à la main le serveur ne se lance pas non plus, et bien souvent sans même afficher un message d'avertissement. Le pire est que ceci n'est pas uniformisé, certains scripts n'ayant pas de variable ON_BOOT.


      Faux probleme il suffit de rajouter un 'exit' dans le fichier /etc/default/XXX pour realiser le meme travail.

      Concernant l'archivage des logs:
      - Pour quelle raison deux méthodes d'archivage de logs cohabitent sous Debian: savelog pour certains fichiers et logrotate pour d'autres ?


      Bien que je ne trouve pas mention de savelog dans mes debian, il reste une chose acquise c'est que debian a toujours proné le choix quand c'est possible (lilo / grub, syslog / syslog-ng, webalizer / analog, etc ).
      • [^] # Re: Initscripts, archivage et kernel

        Posté par  (site web personnel) . Évalué à 2.

        Non update-rc.d ne permet pas de retrouver la priorité 'optimale' / 'normale' d'un processus d'init.

        Pour désactiver un service il suffit de demander à update-rc.d de le mettre en Stop pour le runlevel voulu. Ca conserve le numéro, on le remet en start avec ce même numéro quand on veut.

        Non plus le K indique que l'on veut tuer le processus lorsque l'on quitte le runlevel en cours.

        Et tout script d'init normalement constitué ne fait rien s'il est appelé en stop et que le service ne tourne pas. C'est donc un le comportement recherché.
        • [^] # Re: Initscripts, archivage et kernel

          Posté par  . Évalué à 0.

          Il n'est pas possible de demander à update-rc.d de mettre un service en Stop pour un runlevel voulu à moins d'effacer préalablement tous les liens, mais dans ce cas là autant passer par la commande mv:

          $ update-rc.d mysql stop 20 2 .
          System startup links for /etc/init.d/mysql already exist.


          Et même si ça marchait, il aurait fallu chercher l'info à coup de ls pour connaitre la valeur 20 à placer dans la commande.
      • [^] # Re: Initscripts, archivage et kernel

        Posté par  . Évalué à 1.


        Faux probleme il suffit de rajouter un 'exit' dans le fichier /etc/default/XXX pour realiser le meme travail.

        Encore faudrait-il que tous les scripts de démarrage aient un fichier dans default:

        $ grep -L '/etc/default' /etc/init.d/*
        cron
        atd
        mysql
        postgresql
        ...


        De toute façon mon problème est plutôt qu'avec une telle variable à No, il n'est plus possible de démarrer manuellement et simplement le service.



        Bien que je ne trouve pas mention de savelog dans mes debian

        Je suis sous Sarge.
        Tous les fichiers gérés par syslog sont archivés par savelog dans /etc/cron.daily/sysklogd.
        Je viens de me rendre compte qu'en utilisant syslog-ng cela devient cohérant puisque syslog-ng délègue l'archivage à logrotate.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.