Créer un service pour exécuter un script sh

simo.m Messages postés 1 Statut Membre -  
Flachy Joe Messages postés 2303 Statut Membre -
Bonjour,
j'ai un problème sous linux ,j'ai crée un script sh pour enlever les droits d'écriture pour un dossier quand il contient un nombre de fichier supérieur à 5 , le problème c'est que j'ignore comment le rendre en écoute (c'est à dire l'éxecuter tout le temps ) je pense que c'est à partir d'un service mais comment faire j'en ai aucune idée,j'ai essayé pas mal de fois mais sans résultat ,pourriez-vous m'aider svp parce c'est fort urgent . merci

2 réponses

  1. Flachy Joe Messages postés 2303 Statut Membre 261
     
    Salut,
    les "services" ont leurs scripts de démarrage dans /etc/init.d/ (sous debian et dérivés en tout cas, à vérifier pour les autres).

    Tu peux écrire ton script à partir du fichier /etc/init.d/skeleton (que tu copie dans /etc/init.d/mon_service ) avec ces variables :
    NAME='mon_service'
    DEAMON='/bin/bash'
    DAEMON_ARGS="chemin_vers_le_script_qui_boucle_en_permanence"

    Il faut ensuite l'ajouter au démarrage avec:
    update-rc.d mon_service defaults

    Je n'ai pas testé la création à partir du squelette mais j'ai déjà utiliser un truc de ce genre : http://www.admin-debian.com/gestion-des-processus/ajouter-un-script-au-demarrage-sous-debian/

    Ça a l'avantage sur le cron que le délai peut être très court (le temps pour le script bash de boucler) et donc ton verrouillage sera très réactif.

    Bon courage.
    0
    1. Flachy Joe Messages postés 2303 Statut Membre 261
       
      J'oubliai : pour que ton script bash se termine proprement, il faut qu'il gère la capture des signaux, par l'intermédiaire de la commande trap, sinon il sera tué à la sauvage lors de l'extinction.
      0