URL: https://linuxfr.org/users/tchetch/journaux/launch-and-forget Title: Launch And Forget Authors: Etienne Bagnoud Date: 2010年08月09日T17:24:35+02:00 Tags: Score: 3 Dernièrement mes collègues ont terminé un projet de contrôle des frigos. Il s'agit d'un réseau de sondes communiquant sur un bus dédié et rapportant l'état vers [Nagios](http://nagios.org/). Durant ce projet, j'ai été amené à faire transiter des données d'un serveur à un autre afin de les stocker et de les présenter. Ces données présentaient la température de chaque frigo. Pour chaque transfert de données une action devait être exécutée, soit stocker ça dans une base [RRD](http://oss.oetiker.ch/rrdtool/). Finalement ces données une fois stockée devaient être présentées aux utilisateurs sous forme de graphique. Comme à chaque fois dans ce genre d'application on se retrouve à devoir se connecter sur un serveur, exécuter un script sous un utilisateur particulier, genre _www-data_. Comme à chaque fois je me retrouve avec la problématique de devoir faire soit une authentification ssh, soit un dépôt ftp (ou autre) et bricoler une ou deux script avec _inotify_ (et plein d'autres solutions à l'aide du [protocole universel](https://secure.wikimedia.org/wikipedia/en/wiki/Http)). J'ai donc fait un petit programme exécutant les commandes reçues sur l'entrée standard. Ces commandes sont prédéfinies dans un fichier de configuration. La sortie standard et d'erreur de la commande n'est pas retournée. Le programme n'échoue jamais. Chaque commande se voit attribuer un utilisateur et un groupe et sera lancé avec cet utilisateur et ce groupe. Au bout d'un temps prédéfini, la commande est tuée sans autre forme de procès (le temps **sera** paramétrable par le fichier de configuration). **Aucune authentification nécessaire**. Ce programme a été prévu pour tourner en **root** (afin de pouvoir changer d'utilisateur à la volée (mais ce n'est pas obligatoire)) à l'aide d'un programme comme [inetd](https://secure.wikimedia.org/wikipedia/en/wiki/Inetd). Le programme en lui-même n'inclue aucun code réseau, aucun code de chiffrement, aucun code d'authentification, il exécute les commandes reçues en entrée si elles sont décrites dans le fichier de configuration. Il existe assez de possibilités comme _stunnel_ ou _openssh_ pour faire du chiffrement et/ou de l'authentification. Ce programme devrait être utilisable actuellement, il y a encore deux fonctionnalités que je souhaites implémenter : 1. Pouvoir configurer le temps avant de tuer le processus dans le fichier de configuration 1. Récupérer la configuration depuis un annuaire LDAP (ou une autre base de donnée) Après je crois qu'il sera complet. Sinon dans souci de liberté, j'ai décidé de mettre ce programme sous licence [Do What The Fuck You Want To Public License](http://sam.zoy.org/wtfpl/), la seule vraiment libre comparée à la GPL ou la BSD ... La documentation lacunaire est dans le fichier README. Il ne reste plus qu'à mettre un lien vers le code de [LAF](http://www.tchetch.net/wiki/projects/laf) ... (non je ne l'ai pas fait en python)

AltStyle によって変換されたページ (->オリジナル) /