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:
- 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.
- 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
|