Script d'arrêt sous Linux

Script d'arrêt sous Linux - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 11-12-2007 à 11:07:37    

Bonjour,
 
Je souhaite modifier l'ordre d'arrêt de certains services sous Linux. Pour celà j'ai modifié le nom du lien symbolique dans le répertoire  rc0.d et rc6.d. Quand je teste les scripts manuellement ça fonctionne, par contre je crois que ça ne marche pas quand je fais un halt ou un reboot. En fait je sais pas comment vérifier si ça marche. Y a t'il des logs pour voir si  la modification des ordres fonctionnent  ?
 
Merci
 
Kab

Reply

Marsh Posté le 11-12-2007 à 11:07:37   

Reply

Marsh Posté le 11-12-2007 à 11:10:47    

Tu as modifier quel script ? ceux qui commencent pas un S [:opus dei]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 11-12-2007 à 11:19:10    

Non en fait j'avais  un truc du genre dans RC0 et rc6:  
 
K06nom1
K30nom2
 
J'ai fais :  
mv K06nom1 K30nom1
mv K30nom2 K06nom2
 

Reply

Marsh Posté le 11-12-2007 à 11:22:57    

Tu sais que tu l'a deplace dans le repertoire courant?


Message édité par Ik12 le 11-12-2007 à 11:23:05
Reply

Marsh Posté le 11-12-2007 à 11:25:12    

enfin si tu préferes mv /etc/rc0.d/K06nom1 /etc/rc0.d/K30nom1.
C'est ça que j'ai fais.

Reply

Marsh Posté le 11-12-2007 à 15:36:03    

UP, vous avez   pas une idée ?  Y a pas de log pour  voir ça ?

Reply

Marsh Posté le 11-12-2007 à 15:40:23    

les distributions fournissent des outils pour ça :o

 

(ceci exclut les dinosaures de type slackwariens)

Message cité 1 fois
Message édité par black_lord le 11-12-2007 à 15:40:44

---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 11-12-2007 à 16:00:16    

ohhhh merci je  dois comprendre quoi.......Je veux juste savoir comment vérifier l'ordre d'arret de mes services de manière réelle  et  non en regardant rc0 et rc6.
 
merci
 
kab

Reply

Marsh Posté le 11-12-2007 à 22:49:06    

Hé l'ami, si tu nous disais quel est ta distro ?
On va pas te réciter toutes les solutions en fonction de toutes les distros quand même !?
 
:)

Reply

Marsh Posté le 11-12-2007 à 22:52:39    

Le début de son problème est ici

 

=> Red Hat Enterprise 5

kabouns a écrit :

ohhhh merci je  dois comprendre quoi.......Je veux juste savoir comment vérifier l'ordre d'arret de mes services de manière réelle  et  non en regardant rc0 et rc6.

 

Ca veut dire que, dans ton intéret, merci de donner l'ensemble des détails que tu as. Ca aurait été bien de donner ce topic directement dans ton premier post pour savoir ce que tu as fait et ce qu'on t'as dit.

 

Pratiquement chaque distrib a ses spécificité. Si tu décides de distiller des indices au compte goutte tu n'auras jamais ta réponse.

 

Cependant généralement, que ca soit les outils pour vérifier le séquençage ou pour le mettre en place, on se base sur l'ordre alpha-numérique des liens. sous debian invoke-rc.d ou update-rc.d modifie le nom du lien en conséquence. Idem pour chkconfig je suppose.

 

Peux tu nous dire qu'est ce qui te fais croire qu'il ne s'éxécute pas dans le bon ordre ?
Tu peux modifier ces scripts en placant un touch toto au bon endroit (dans le case du stop) pour vérifier qu'il s'éxécute bien...


Message édité par o'gure le 11-12-2007 à 22:58:48

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 11-12-2007 à 22:52:39   

Reply

Marsh Posté le 11-12-2007 à 23:04:24    

Pour la RHEL-4 : http://www.redhat.com/docs/manuals [...] STOOL.html


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 12-12-2007 à 10:07:34    

Citation :


Peux tu nous dire qu'est ce qui te fais croire qu'il ne s'éxécute pas dans le bon ordre ?


 
Donc mon problème est le suivant :  
 
Depuis que j'ai installé Avast et Avastguard mon serveur Redhat 5 se bloque sur "Killall services" à l'arrêt (ou au redémarrage). Dans la doc il est dit que avastguard doit s'arreter avant avastd, je vais vérifier, et je modifie rc0 et rc6 pour cet ordre (non respecté de base). Je redémarre ça change rien, j'arrête idem ça bloque.....Ensuite j'arrête mon  service avastguard manuellement et je  redémarre sans problème => j'en conclu qu'il y a un problème à l'arret.
 
merci
 
kab

Reply

Marsh Posté le 12-12-2007 à 10:21:32    

Normalement, les scripts s'exécutent séquentiellement :
 - pour le démarrage : les scripts s'exécutent suivant leur ordre de priorité S01 -> S99 avec en paramètre start
 - pour l'arrêt : les scripts s'éxécutent suivant leur ordre de priorité K01 -> K99 avec en paramètre stop
 
Tu as bien suivi ces règles quand tu as utilisé chkconfig pour les séquencer ?
Dans les scripts, chkconfig a t il rajouté un header avec le niveau de priorité en commentaire ?
Les liens sont ils bon ?
 
 
Dans le pire des cas, tu peux toujours modifiés les scripts où en créer un unique pour stopper les deux services en un coup
1. tu fermes le premier proprement /etc/init.d/premierscript stop
2. si tout c'est bien passé tu fermes le suivant /etc/init.d/secondscript stop
 
tu reprends le squelette des script d'init, tu le places dans /etc/init.d et tu fais les liens qui vont bien dans /etc/rc{0-5}.d
 


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 12-12-2007 à 10:36:08    

o'gure a écrit :

Normalement, les scripts s'exécutent séquentiellement :
Tu as bien suivi ces règles quand tu as utilisé chkconfig pour les séquencer ?
Dans les scripts, chkconfig a t il rajouté un header avec le niveau de priorité en commentaire ?
Les liens sont ils bon ?


 
La je ne comprends pas trop, j'ai utilisé chkconfig de la manière suivante :  
 
chkconfig --level 345 avastd on
chkconfig --level 345 avastgard on
 
On ne peut pas définir l'ordre via cette commande.
En plus je ne comprends pas trop à quoi servent les liens dans rc3.d etc..... qui commence par K ? Il ne faut pas démarrer Kxxname au niveau 3 c'est ca ?
En ce qui concerne le header, je ne sais pas ce que  c'est à quoi ça sert mais  je  pense que c'est ça :  
 

Code :
  1. # RedHat comment block...
  2. #
  3. # chkconfig: 345 94 06
  4. # description: Resident avast! virus scanner.
  5. # pidfile: /var/run/avastd.pid
  6. # processname: avastd
  7. #
  8. ##
  9. # LSB comment block...
  10. #
  11. ### BEGIN INIT INFO
  12. # Provides:       avastd
  13. # Required-Start: $local_fs $network $syslog # Required-Stop:  $local_fs $network $syslog # Default-Start:  3 4 5
  14. # Default-Stop:   0 1 2 6
  15. # Description:    demonized avast! engine.
  16. ### END INIT INFO


Reply

Marsh Posté le 13-12-2007 à 01:01:53    

black_lord a écrit :

les distributions fournissent des outils pour ça :o
 
(ceci exclut les dinosaures de type slackwariens)


c'est sur, les inits BSD sont tellement simples a comprendre que ya pas besoin de tool pour les administrer ;)


---------------
"Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root."
Reply

Marsh Posté le 13-12-2007 à 15:15:14    

merci peyo22 mais mon problème n'est  pas la!!!!!

Reply

Marsh Posté le 17-12-2007 à 10:16:29    

Bonjour à tous,
 
J'ai éclairci certaines choses. Alors en fait je me demandais si lors de l'arrêt ou le reboot de mon serveur le script d'init d'avast était bien pris en compte. Pour vérifier j'ai mis la  commande "service avastd stop" dans un  script d'init qui fonctionne. Et la miracle ça fonctionne. Mon probleme est  donc  le suivant : pourquoi mon script marche  de manière manuelle mais  n'est pas pris en compte par init à l'arret ?
 
merci
 
Kab

Reply

Marsh Posté le 19-12-2007 à 17:56:26    

Bon alors j'ai trouvé la solution à mon problème, sous redhat 5 enterprise pour que les scripts d'arrêt soient pris en compte il faut que le fichier /var/lock/nom_du_service existe.  
Le probleme c'est que tous les scripts créent pas ce fichier.
Donc dans la fonction start du script init il faut ajouter :  
 
touch /var/lock/nom_du_service
 
Et dans la fonction stop :  
 
rm -rf /var/lock/nom_du_service
 
Voila voilou j'espere que ca pourra aider d'autres personnes.
 
Kab

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed