IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Debian Discussion :

script à la fermeture de session


Sujet :

Debian

  1. #1
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 549
    Points : 243
    Points
    243
    Par défaut script à la fermeture de session
    Je souhaite procéder à quelques sauvegardes lors de l'arrêt de mon ordinateur.
    J'ai donc créer le script suivant, intitulé "Sauvegarde" que j'ai placé dans /etc/init.d :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsync -av /home /SaveDisk       #/SaveDisk est un second disque dur
    J'ai par ailleurs créé le lien dans /etc/rc0.d :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S00Sauvegarde -> ../init.d/Sauvegarde
    Si j'ai bien compris, le fait de placer ce lien dans rc0.d le fait exécuter lors de l'arrêt de l'ordinateur.
    Le fait que le lien commence par S00 lui dit de s'exécuter en premier.

    Il se trouve que ma belle mécanique ne fonctionne pas.
    Je n'ai sans doute pas tout compris ; mais quelqu'un saurait-il me dire comment corriger le problème ?

  2. #2
    Membre chevronné Avatar de jeanbi
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 703
    Points : 2 247
    Points
    2 247
    Par défaut
    bonjour,
    c'est pas plutot dans
    /etc/rc6.d
    le script doit se terminer par un exit 0
    et le script doit commencer par k99
    a+

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 587
    Points : 19 469
    Points
    19 469
    Par défaut
    non, non, c'est bien 0 pour l'extinction, 6 c'est pour le redémarrage.

    Sur Debian, ce genre de manipulation s'effectuent en utilisant update-rc.d. Le man (très clair) propose des exemples.

  4. #4
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 549
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par N_BaH;6608634Sur Debian, ce genre de manipulation s'effectuent en utilisant [codeinline
    update-rc.d[/codeinline]. Le man (très clair) propose des exemples.
    update-rc.d permet de faire les choses proprement. Mais ne fait pas grand chose de plus (à ma connaissance).
    En tout cas, ça ne me dit pas ce qui ne fonctionne pas.

  5. #5
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    tu dois avoir dans /etc/rc0.d un lien symbolique obligatoirement nommé tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /etc/rc0.d/K00Tonscript -> /etc/init.d/TonScript
    ton script réel est donc
    TonScript doit ABSOLUEMENT reconnaitre les paramètres start & stop.
    dans une structure switch genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [...]
    start ) 
         [...]
         rsync ........
         [...]
    ;;
    [...]
    si tu respectes ces trois consignes c'est réglé

  6. #6
    Membre confirmé Avatar de herzleid
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 393
    Points : 509
    Points
    509
    Par défaut
    Citation Envoyé par frp31 Voir le message
    tu dois avoir dans /etc/rc0.d un lien symbolique obligatoirement nommé tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /etc/rc0.d/K00Tonscript -> /etc/init.d/TonScript
    ton script réel est donc
    TonScript doit ABSOLUEMENT reconnaitre les paramètres start & stop.
    dans une structure switch genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [...]
    start ) 
         [...]
         rsync ........
         [...]
    ;;
    [...]
    si tu respectes ces trois consignes c'est réglé
    Et vérifier, comme pour une tache cron, que le programme est dans le path. Le plus simple étant bien sur de mettre le chemin complet. C'est tout con, mais parfois ça suffit.

  7. #7
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    Citation Envoyé par herzleid Voir le message
    Et vérifier, comme pour une tache cron, que le programme est dans le path. Le plus simple étant bien sur de mettre le chemin complet. C'est tout con, mais parfois ça suffit.
    Oh pinaise oui ; tu fais bien de le préciser j'ai complétement zappé cette hypotèse ... et c'est tout à fait pertinant !

  8. #8
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 549
    Points : 243
    Points
    243
    Par défaut
    Ca ne fonctionne toujours pas !

    Citation Envoyé par frp31 Voir le message
    tu dois avoir dans /etc/rc0.d un lien symbolique obligatoirement nommé tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /etc/rc0.d/K00Tonscript -> /etc/init.d/TonScript
    C'est le cas ; le lien est le suivant : /etc/rc0.d/K00Sauvegardes -> ../init.d/Sauvegardes

    Citation Envoyé par frp31 Voir le message
    ton script réel est donc
    C'est encore le cas : /etc/init.d/Sauvegardes

    Citation Envoyé par frp31 Voir le message
    TonScript doit ABSOLUEMENT reconnaitre les paramètres start & stop.
    dans une structure switch genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [...]
    start ) 
         [...]
         rsync ........
         [...]
    ;;
    [...]
    si tu respectes ces trois consignes c'est réglé
    Là, je ne vois pas pourquoi. Car mon script tel qu'il est, s'exécute dans tous les cas. En particulier lorsqu'il est appelé avec les paramètres "start" ou "stop".
    Je rappelle que c'est un script très simple, qui ne contient que la ligne
    rsync -av /home /SaveDisk

    Il doit y avoir autre chose ??

  9. #9
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    Citation Envoyé par enicnath Voir le message
    Ca ne fonctionne toujours pas !


    C'est le cas ; le lien est le suivant : /etc/rc0.d/K00Sauvegardes -> ../init.d/Sauvegardes


    C'est encore le cas : /etc/init.d/Sauvegardes



    Là, je ne vois pas pourquoi. Car mon script tel qu'il est, s'exécute dans tous les cas. En particulier lorsqu'il est appelé avec les paramètres "start" ou "stop".
    Je rappelle que c'est un script très simple, qui ne contient que la ligne
    rsync -av /home /SaveDisk

    Il doit y avoir autre chose ??
    oui absoluement la structure indiquée acceptant les parametres start et stop à minima pas le choix tu dois à tout prix obéir à la consigne

    regardes n'importe quel autre script dans /etc/init.d/

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides:          mountnfs-bootclean
    # Required-Start:    mountnfs
    # Required-Stop:
    # Default-Start:     S
    # Default-Stop:
    # Short-Description: bootclean after mountnfs.
    # Description:       Clean temporary filesystems after
    #                    network filesystems have been mounted.
    ### END INIT INFO
     
    case "$1" in
      start|"")
            # Clean /tmp, /var/lock, /var/run
            . /lib/init/bootclean.sh
            ;;
      restart|reload|force-reload)
            echo "Error: argument '$1' not supported" >&2
            exit 3
            ;;
      stop)
            # No-op
            ;;
      *)
            echo "Usage: mountnfs-bootclean.sh [start|stop]" >&2
            exit 3
            ;;
    esac
     
    :

  10. #10
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    Citation Envoyé par enicnath Voir le message
    Ca ne fonctionne toujours pas !

    Là, je ne vois pas pourquoi. Car mon script tel qu'il est, s'exécute dans tous les cas. En particulier lorsqu'il est appelé avec les paramètres "start" ou "stop".
    absoluement pas !! non justement !! il n'est pas exécuté si il n'accepte pas start et stop ! c'est bien là qu'est ton problème dans init le fonctionnement est spécialement fait pour les init et n'est pas un comportement "ordinaire"

    le nom fourni au lien sous la forme SxxSauvegarde indique justement que le parametre start est envoyé au script....

    dans init y'a pas 2 façons de faire ... y'en a une . |
    tu dois obéir à la consigne ou "abandonner" et ça c'est pas acceptable.

  11. #11
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 549
    Points : 243
    Points
    243
    Par défaut
    Ok,
    j'ai tout fait comme vous disiez ; notamment réécrit mon script comme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    case "$1" in
      stop)
    	rsync -av /home /SaveDisk
    	;;
      *)
    	exit
    	;;
    esac
    ET CA MARCHE !
    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécuter un script avant la fermeture de session
    Par uknow dans le forum Windows XP
    Réponses: 3
    Dernier message: 18/09/2010, 04h10
  2. script ouverture/fermeture session
    Par jprou dans le forum Windows
    Réponses: 1
    Dernier message: 14/04/2010, 16h59
  3. Script de fermeture de session ne fonctionne pas
    Par GutsRed dans le forum C++
    Réponses: 3
    Dernier message: 13/02/2010, 17h55
  4. Executer script à la fermeture de session
    Par lavazavio dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 08/05/2008, 13h48
  5. Script pour afficher la popup "Fermeture de session Win
    Par Childerik dans le forum VBScript
    Réponses: 1
    Dernier message: 28/12/2005, 20h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo