Bannière de NPC
  Trucs et Astuces pour BeOS -       Catégorie: Scripting
 

Accueil

Alertes
Applications
Audio et Vidéo
Divers
Interface
Matériel
Réseaux
Terminal
Tracker

Infos Serveur

 

 

Programmez des redémarrages réseau

La couche réseau de BeOS est en cours de ré-écriture complète, et sera remplacée par une couche réseau plus performante et architecturée sur les réseaux BSD (lire l'article BONE sur BeNews pour plus d'informations). BONE était prévu comme une mise à jour, quelque temps après la sortie de BeOS R5.

En attendant, il y a deux cas où il peut être pratique d'être capable de rédémarrer le service réseau automatiquement suivant une planification ou un script. Plus spécifiquement:

  1. Si vous utilisez un serveur web BeOS, vous verrez que certaines unités d'exécution (threads) tcp ne sont pas fermées proprement. Avec le temps (environ 14 000 connexions), ces unités d'exécution non-fermées peuvent bloquer la couche réseau, ce qui tue le service réseau. Pour vérifier l'état de ces unités d'exécution, saisissez ps | grep tcp dans un Terminal.

    Le service réseau peut être redémarré sans avoir à redémarrer la machine en cliquant sur Restart Networking dans le programme de configuration réseau. Mais vous voudrez probablement automatiser ce processus de manière à ce qu'il se lance à des intervalles réguliers sans intervention manuelle.

  2. Si vous êtes connecté via DHCP, l'attribution d'une adresse IP ou DNS particulière peut expirer tous les un ou deux jours, selon la façon dont votre fournisseur d'accès a configuré les choses. Vous voudriez ainsi avoir un redémarrage du service réseau toutes les 24 heures pour récupérer automatiquement de nouvelles adresses.

En premier lieu, vous devez avoir une commande capable de redémarrer le service réseau, de manière à avoir quelquechose à appeler de votre planification ou de votre script. Téléchargez la dernière version de net_restart de John Wiggins et lisez le fichier readme inclus. Vous devrez compiler le code source pour votre plateforme; les instructions sont très simples. Déplacez ensuite le binaire compilé de net_restart dans ~/config/bin.

Bien que votre premier réflexe serait d'utiliser net_start avec cron, vous découvrirez rapidement que ce n'est pas si simple que ça -- cron n'a pas accès à toutes les variable d'environnement nécessaires pour un redémarrage correct du service réseau. J'ai eu à faire avec ce problème un petit bout de temps avant de laisser tomber. Heureusement, il y a une autre façon de faire. Procurez-vous une copie de Scheduler de Brian Tietz. Appelez net_restart à partir de Scheduler, et tout marchera parfaitement. Scheduler est également une application native BeOS plutôt qu'un portage, et se révèle 10 fois plus facile à utiliser.

Il reste encore une chose -- lorsque vous redémarrez le service réseau, vous tuez votre serveur web. J'utilise Robin Hood, et j'ai écrit un bref script pour contourner ce problème. Le script tue simplement le démon Robin Hood, lance net_restart, et redémarre le démon. Sauvegardez ce script sous le nom ~/config/bin/reseau_leve_toi et appelez-le de l'application Scheduler, plutôt que net_restart en lui-même. Vous devrez peut-être adapter les chemins pour qu'ils correspondant à votre système.

 #!/bin/sh
 
 #redémarre le service réseau et le démon Robin Hood
 /bin/kill -9 rhdaemon
 /boot/home/config/bin/net_restart
 /boot/apps/net/RobinHood/server/rhdaemon &
 

Téléchargez le script présenté dans cette astuce ici.

Read this Tip in English here
Hier findest Du den Tip in Deutsch


Cette astuce est une contribution de Scot Hacker.
Site de l'auteur de cette astuce: http://www.birdhouse.org/beos/bible/.

Astuce traduite par: Nicolas.

Traduction Française du Serveur BeTips © 2000 BeTrayer et équipe
 

 

BeArchives.com Banner Exchange Network