Probleme avec script bash [OK]

Discussion dans 'Web, design' créé par sebge2, 20 Mars 2006.

Statut de la discussion:
Fermée.
  1. Offline
    sebge2 Touriste
    Bonjour :)

    dans le cadre de l'installation du serveur postgreSQL je suis amené à faire moi même le script bash qui permettra de lancer le daemon

    c'est la première fois que je fais un script aussi compliquer et j'aimerais savoir comment faire pour afficher le [OK] en fonction d'un test que j'aurais fais moi meme ...

    de plus j'ai une erreur avec la fonction daemon :
    alors qu'il est lancé

    idem pour le lancement :
    Code:
    [root@serveur init.d]# ./postgresql start
    Starting postgreSQL: postmaster starting
    execvp: No such file or directory
                                                                    [ECHEC ]
    
    autre probleme il m'affiche lui meme le message "postmaster starting" comment l'omettre ?


    voici mon script :
    Code:
    #!/bin/sh
    # Script de lancement de postgresql
    
    if [ -f /etc/init.d/functions ] ; then
        . /etc/init.d/functions
    elif [ -f /etc/rc.d/init.d/functions ] ; then
        . /etc/rc.d/init.d/functions
    else
        exit 0
    fi
    
    start(){
        echo -n "Starting postgreSQL: "
        if [ -f /var/lock/subsys/postmaster ]; then
            echo'' #daemon /usr/bin/script.r $([ "$DAEMON" =      no ] && echo -bd) \
        else
            touch /var/lock/subsys/postmaster
            /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >/usr/local/pgsql/logfile 2>&1 &
            su -c '/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /var/log/postgresql' postgres
        fi
        #echo -n "Starting postgreSQL: "
        daemon postmaster
        RETVAL=$?
        echo
        return $RETVAL
    }
    
    stop(){
        if [ -f /var/lock/subsys/postmaster ] ; then
            rm /var/lock/subsys/postmaster
        else echo 'postgreSQL is already dead'
        fi
        echo -n "Shutting down postgreSQL:      "
        killproc postmaster
        RETVAL=$?
        echo
        return $RETVAL
    }
    
    status(){
        echo "PostgreSQL: "
        if [ -f /var/lock/subsys/postmaster ]; then
             daemon /usr/bin/script.r $([ "$DAEMON" =      yes ])
        else
             daemon /usr/bin/script.r $([ "$DAEMON" =      no])
        fi
        RETVAL=$?
        echo
        return $RETVAL
    }
    
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        status)
            status
            ;;
        *)
            echo "Usage: rebold {start|stop|status}"
    esac
    
    exit $?
    merci d'avance :)

    ps : tout lien ou document concernant bash m'interesse :wink: [/b]
    sebge2, 20 Mars 2006
    #1
  2. Offline
    Calvin80 Elite
    je comprends pas ce que tu veux dire..c normal que si ton serveur est encore lancé, le shutdown ne s'est pas fait...
    Calvin80, 20 Mars 2006
    #2
  3. Offline
    dagibbon Elite
    bizarre qu'il te mette l'erreur execvp: no such file or directory alors que tu l'utilise pas...

    si tu starte juste le daemon ca passe?
    c'est quelle distro?

    Sinon sur le site de LFS tu trouves ceci:
    peut etre les symlinks ou tes path ...

    petite question par curiosité, pourquoi Postgresql?
    dagibbon, 20 Mars 2006
    #3
  4. Offline
    sebge2 Touriste
    merci :)

    pour finir j'ai fais ceci qui fonctionne :

    je suis tombé par hasard sur echo_failure et echo_success :)

    je regarderai le lien demain :wink:

    Code:
    #!/bin/sh
    # Script de lancement de postgresql
    
    if [ -f /etc/init.d/functions ] ; then
        . /etc/init.d/functions
    elif [ -f /etc/rc.d/init.d/functions ] ; then
        . /etc/rc.d/init.d/functions
    else
        exit 0
    fi
    
    start(){
        echo -n "Starting postgreSQL: "
        if [ -f /var/lock/subsys/postmaster ]; then
            echo_failure
        else
            /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >/usr/local/pgsql/log/logfile 2>&1 &
            su -c '/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/log/logfile' postgres > /usr/local/pgsql/log/logfile
            if [ $$?=0 ] ; then
                echo_success
                touch /var/lock/subsys/postmaster
            else
                echo_failure
            fi
        fi
    }
    
    stop(){
        echo -n "Shutting down postgreSQL:      "
        if [ -f /var/lock/subsys/postmaster ] ; then
            killproc postmaster
            if [ $$?=0 ]; then
                rm /var/lock/subsys/postmaster
                echo_success
            else echo_failure
            fi
        else echo_failure
        fi
    }
    
    status(){
        echo -n "PostgreSQL: "
        if [ -f /var/lock/subsys/postmaster ]; then
             echo_success
        else
             echo_failure
        fi
    }
    
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        status)
            status
            ;;
        restart)
            stop
            start
            ;;
        *)
            echo "Usage: postgreSQL {start|stop|status}"
    esac
    
    echo ""
    
    exit $?
    sebge2, 20 Mars 2006
    #4
  5. Offline
    SkYlEsS Kawai
    C'est quoi un serveur postgreSQL ? C'est quoi un script bash ? :) :oops:
    SkYlEsS, 20 Mars 2006
    #5
  6. Offline
    FoX SpeEd Touriste
    ben le serv postgreSQL c'est pas pour une base de donnée??
    FoX SpeEd, 20 Mars 2006
    #6
  7. Offline
    sebge2 Touriste
    désolé je n'ai pas vu qu'il y avait des réponses :?


    alors postgreSQL c'est un SGBD relationnelle (Serveur de Gestion de Base de Données) qui inclu en natif le SQL... c'est un vieux de la vieille (je pense) il date des années 80

    un script bash c'est un script contenant des lignes commandes .... cfr. bash qui est l'interprétateur de commande sous Unix

    en gros ca me permet de faire de la programmation système, en configurant le système avec mon script bash je peux administrer plus facilement l'ajout de ce nouveau service (postgreSQL)
    sebge2, 5 Avril 2006
    #7
Statut de la discussion:
Fermée.