• [^] # Re: Heuuu

    Posté par . En réponse au journal Launch And Forget. Évalué à 7.

    Non. Bon à mon tour d'essayer :)
    Le but de LAF est de permettre d'exécuter sous contrôle des commandes prédéfinies lancées par des utilisateurs prédéfinis. Oublie le réseau, l'authentification ..., il ne le fait pas. Ces choses là sont gérées par d'autres programmes auxquels laf s'intègrera grâce à un peu de "magie unix". (Mais si rappelez vous: KISS, "des programmes qui effectuent une seule chose et qui le font bien. des programmes qui collaborent. des programmes pour gérer des flux de texte, car c'est une interface universelle" :)

    Les ordres se passent très simplement: par la ligne de commande.
    Chaque "ordre" possible est spécifié dans un fichier de configuration où tu définis et associes:
    - un type (le nom de l'ordre en fait)
    - un user/groupe
    - un programme a lancer

    Par exemple: si tu définis dans ton fichier de configuration
    type: FRIDGE
    user: AoKiji
    script: IceAge.sh

    et si tu exécute
    # laf ^t:273,15^ ^type:FRIDGE^
    laf vérifie que FRIDGE est bien dans le fichier de conf et lance IceAge.sh -t 273,15 en tant qu'utilisateur AoKiji.

    Si tu veux lancer laf depuis une autre machine de ton réseau, tu ajoute laf dans ta configuration inetd (ou tu utilise netcat, ou ...). Quand inetd recevra des paquet sur le port que tu a configuré, il exécutera laf en lui passant les données reçues sur la ligne de commande. Et hop, tu as ton laf en réseau.

    Les particularités de laf sont
    - il n'envoie pas pas le code de retour des programmes qu'il exécute
    - il ne renvoie pas ce que retournent les programmes qu'il exécute

    Ce qui a pour conséquence de le rendre inutile dans le cas du lancement d'une simple commande, mais très utile dans le cas ou tu lui envoie aveuglément des données.

    Si on prend un exemple pour faire "sentir" un cas d'utilisation, imagine un frigo qui envoie sa température interne à un PC par le réseau. Sur ce PC tu veux faire un zouli graphique qui montre l'évolution de cette température. Au fur et à mesure que tu reçois cette température, tu stocke les valeurs quelque part: ce sera le rôle du programme lancé par laf. (Puis un autre programme se chargera de générer le graphique.)
    Le frigo se fiche d'avoir un retour sur les valeurs qu'il envoie. Et au cas où le programme qui stocke les valeurs foire, cela n'a pas d'importance non plus: le frigo n'a pas les moyens de les renvoyer et rien ne sera bloqué car laf relance le programme à chaque fois. (d'où la nécéssité de garder ce programme simple et petit également)

    (note: j'ai simplifié et omit beaucoup de choses mais l'idée générale est là je pense)


    Et là je me demande comment j'en suis arrivé à écrire ce pavé alors que j'essayai de simplifier. J'espère au moins avoir bien compris :) et m'être fait compris :/