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

Linux Discussion :

Cération d'un script init.d


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 17
    Points
    17
    Par défaut Cération d'un script init.d
    Bonjour voila je voudrais creer un script de demarrage pour une application mais j'ais un probleme pour le stop
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    stop() {
            echo -n $"Stopping $prog: "
            PID=`ps -aux | grep partimaged | awk '{ print $2 }'`
            kill -9 $PID
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ]
            return $RETVAL
    }
    le probleme est que ma variable courante contient le pid de ma commande ps -aux.
    de fait qd je fait mon kill la commande est terminée je me retrouve avec un message pas propre

    Stopping partimaged: ./pimaged: kill: (3389) - No such pid
    Autre probleme pour le status dans PID les pid sont suivit d'un \n donc pour le status

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PID=`ps -aux | grep partimaged | awk '{ print $2 }'`
            if [ $nb -ne 1 ]
            then
                    echo -n "partimaged (pid $PID) is running"
            else
                    echo "partimaged is stopped"
            fi
    je recupere
    partimaged (pid 4336
    4976) is running
    Merci d'avance de votre aide

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    probablement a cause que tu trouve le process "grep" donc pour eviter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PID=`ps -aux | grep partimaged | grep -v grep | awk '{ print $2 }'`
    le grep -v grep elimine du filtre la commande grep si elle est dans la liste des process ....
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    Pas bete ca marche
    Thx a lot

    Sinon pour le status t aurais pas une idée

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    ou recupere tu la variable $nb ????
    je fairais pluto :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ps -aux | grep -v grep | grep partimaged >> /dev/null
           if (( $? == 0 ))
            then
                    echo -n "partimaged (pid $PID) is running"
            else
                    echo "partimaged is stopped"
            fi
    c'est $? qui contient le resultat de la dernier commande, ici le grep le plus a droite qui retourne un code retour != 0 si il n'a rien trouvé
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    Merci pour votre aide
    maintenant j'ais encore une question...
    Quest ce que je doit ajouter a mon code pour avoir les resultats [ OK ]
    [ WARNING ] et autre [ ERROR ]

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    #!/bin/sh
    #chkconfig: 35 20 80
    #
    #description: lance partimaged pour sauvegarde partition
    #
    prog="partimaged"
    start() {
            echo -n $"Starting $prog: "
            /sbin/partimaged -D --dest /data
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ]
            return $RETVAL
    }
    stop() {
            echo -n $"Stopping $prog: "
            PID=`ps -aux | grep partimaged | grep -v grep | awk '{ print $2 }'`
            echo $PID
            kill -9 $PID
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ]
            return $RETVAL
    }
    status(){
      PID=`ps -aux | grep partimaged | grep -v grep | awk '{ print $2 }'`
         nb=`echo $PID | wc -w`
            if [ $nb -ne 0 ]; then
                    echo -n "partimaged (pid $PID) is running"
            else
                    echo "partimaged is stopped"
            fi
    }
    pid(){
            PID=`ps -aux | grep partimaged | awk '{ print $2 }'`
            echo -n $PID
    }
    case "$1" in
    'start')
            start
            ;;
    'stop')
            stop
            ;;
    'status')
            PID=`ps -aux | grep partimaged | awk '{ print $2 }'`
            nb=`echo $PID | wc -w`
            if [ $nb -ne 1 ]
            then
                    echo "partimaged (pid $PID) is running"
     else
                    echo "partimaged is stopped"
            fi
            ;;
    'restart')
            stop
            start
            ;;
    'pid')
            pid
            ;;
    *)
            echo "Usage: $0 { start | stop | restart | status }"
            ;;
    esac

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    en debut de script quelquechoses comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    # Source function library.
    . /etc/rc.d/init.d/functions
     
     
    # et appell au fonction 
    echo_success , echo_warning ... etc
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    Merci encore ca marche nickel

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    un p'tit flag "resolue"
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    Derniere question avant le [résolu]
    coment on fait pour l'ajout a la console de log
    cad pour avoir les arrete et demarrage dans /var/logs/messages ???

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

Discussions similaires

  1. problème script init.d sur debian
    Par paissad dans le forum Debian
    Réponses: 5
    Dernier message: 09/11/2009, 18h02
  2. Mon script de démarage sous init.d ne se lance pas
    Par zulul dans le forum Administration système
    Réponses: 18
    Dernier message: 12/06/2007, 23h39
  3. [Rational SQA Robot] Importer des scripts ?
    Par shinkyo dans le forum Outils
    Réponses: 1
    Dernier message: 30/05/2007, 10h53
  4. [script]Rational ROSE, comment copier l'image d'un diagramme
    Par Viorika dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/06/2006, 21h38
  5. Coup de main : scripts de /etc/init.d
    Par Rhineauféros dans le forum Linux
    Réponses: 7
    Dernier message: 04/07/2005, 17h59

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