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

Shell et commandes GNU Discussion :

Shell fils/pére et FIFO


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Shell fils/pére et FIFO
    Bonjour,
    J'ai un petit problème au niveau de mon script bash dans la récupération du groupe.
    j'ai définis les shells suivantes


    Code Fifo_client : 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
    #! /bin/sh
     
    FIFO_SRV=~/noms_ident.fifo
    FIFO_CLT=~/fifo_$$.fifo
     
    if [ -z "$1" ] ; then
    	echo "Syntaxe : $0 identifiant" >&2
    	exit 1
    fi
     
    if [ ! -p $FIFO_SRV ] ; then
    	echo "Le serveur n'est pas accessible"
    	exit 1
    fi
     
    mkfifo -m 0622 $FIFO_CLT
    if [ ! -p $FIFO_SRV ] ; then
    	echo "Impossible de créer la file ~/fifo_$$.fifo"
    	exit 1
    fi
     
    echo "$1 $FIFO_CLT" > $FIFO_SRV
    cat < $FIFO_CLT
    rm -f $FIFO_CLT


    Code Fifo_serveur : 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
    #! /bin/sh
     
    # Passage en mode démon
    if [ "$MON_PID" != "$PPID" ] ; then
    	export MON_PID=$$
    	MON_LISTING=$(cat $0)
    	cd /
    	setsid /bin/bash -c "$MON_LISTING" "$0" "$@" 0<&- 1>&- 2>&- &
    	logger -t $(basename $0) "Le PID du demon est $!"
    	echo "Le PID du démon est $!" >& 2
    	exit 0
    fi
     
    FIFO_SRV=~/noms_ident.fifo
     
    function gestionnaire_signaux
    {	
    	rm -f $FIFO_SRV
    	exit 0;
    }
    trap gestionnaire_signaux EXIT QUIT INT HUP
     
    if [ -e $FIFO_SRV ] ; then
    	echo "FIN" > $FIFO_SRV &
    	exit 0;
    fi
     
    mkfifo -m 0622 $FIFO_SRV
    if  [ ! -p $FIFO_SRV ] ; then
    	echo "Impossible de créer la file FIFO $FIFO_SRV"
    	exit 1
    fi
     
    FIN=""
    while [ ! $FIN ] ; do
    	read IDENT FIFO_CLT < $FIFO_SRV
     
    	TROUVE=""
    	exec < /etc/passwd
    	ANCIEN_IFS="$IFS"
    	IFS=":"
    	while read ident passe uid gid nom reste ; do
    		if [ "$IDENT" == "$ident" ] ; then
    			TROUVE="Oui"
    			break
    		fi
    	done
    	IFS=$ANCIEN_IFS
     
    	if [ "$IDENT" == "FIN" ] ; then
    		FIN="Oui"
    		TROUVE="Oui"
    		nom="Fin du serveur"
    	fi
    	if [ $TROUVE ] ; then
    		echo "$nom" > $FIFO_CLT
    	else
    		echo "Non trouvé"  > $FIFO_CLT
    	fi
    done

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 266
    Points : 12 681
    Points
    12 681
    Par défaut
    Bonjour,

    Tu as oublié de nous dire ce qu'était vraiment le problème.
    Cordialement.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Tu as oublié de nous dire ce qu'était vraiment le problème.

    Mon problème c'est que je veux récupérer le nom du groupe ou des groupes auxquels appartient l'utilisateur dont le nom est passé en paramètre.

  4. #4
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 266
    Points : 12 681
    Points
    12 681
    Par défaut
    Dans le script client, il y a une erreur dans le if juste après le mkfifo, tu vérifies si le fifo serveur est présent alors que tu viens de créer le fifo client...

    Ensuite pour ton problème spécifique, je ne vois pas à quel moment tu envoies les groupes (gid) dans le fifo. on ne voit qu'un envoi de nom.
    Cordialement.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 539
    Points : 19 361
    Points
    19 361
    Par défaut
    Bonjour,

    pourquoi cela paraît-il si compliqué ?
    je trouve ça plutôt tordu comme façon de faire une chose simple :
    récupérer le nom du groupe ou des groupes auxquels appartient l'utilisateur dont le nom est passé en paramètre

    toute la problématique n'a sans doute pas été exposée.

    pourquoi ne pas utiliser un seul script ?
    quel besoin de passer par un mode "daemon" ?
    pourquoi ne pas simplement utiliser grep, ou sed ?

    c'est très bizarre ce mélange de notions complexes et de bêtes erreurs.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Dans le script client, il y a une erreur dans le if juste après le mkfifo, tu vérifies si le fifo serveur est présent alors que tu viens de créer le fifo client...

    Ensuite pour ton problème spécifique, je ne vois pas à quel moment tu envoies les groupes (gid) dans le fifo. on ne voit qu'un envoi de nom.
    Monsieur disedorgue, merci d’abord pour votre aide.
    Vraiment je suis perdu dans ce shell.. si vous pouvez me corriger l'erreur et l'ajouter dans la partie concerné je serai vraiment reconnaissant

    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    pourquoi cela paraît-il si compliqué ?
    je trouve ça plutôt tordu comme façon de faire une chose simple :
    toute la problématique n'a sans doute pas été exposée.

    pourquoi ne pas utiliser un seul script ?
    quel besoin de passer par un mode "daemon" ?
    pourquoi ne pas simplement utiliser grep, ou sed ?

    c'est très bizarre ce mélange de notions complexes et de bêtes erreurs.
    Merci pour votre participation cher moderateur.. Mais le probléme c'est que je dois utiliser la communication entre les processus.
    c'est pour cela que j'ai écris ce script. Maintenant je dois ajouter la partie sur laquelle j'ai parlé(récuperation du nom de groupe par le processus fils).
    cordialement,

  7. #7
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Bonjour Monsieur almisouri,

    si vous pouvez me corriger l'erreur et l'ajouter dans la partie concerné je serai vraiment reconnaissant
    On ne peut pas écrire ce que tu veux à ta place. Art divinatoire en panne actuellement. Par contre, en cas de problème précis, plusieurs personnes peuvent répondre.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par almisouri Voir le message
    Vraiment je suis perdu dans ce shell.. si vous pouvez me corriger l'erreur et l'ajouter dans la partie concerné je serai vraiment reconnaissant
    Un indice: c'est à la ligne 17 du Fifo_client.

Discussions similaires

  1. relation entre fils/pére Dans un treeview
    Par soumamort dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/04/2008, 12h03
  2. Réponses: 1
    Dernier message: 18/09/2007, 20h10
  3. fork : créer UN fifo entre le père et SES fils
    Par ankou29666 dans le forum Langage
    Réponses: 3
    Dernier message: 09/09/2007, 18h33
  4. champs fils/père basé sur requête
    Par acorna dans le forum Access
    Réponses: 20
    Dernier message: 25/08/2006, 12h49
  5. Champs fils/pères
    Par Ric500 dans le forum IHM
    Réponses: 3
    Dernier message: 13/02/2006, 15h08

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