Shell fils/pére et FIFO
almisouri
-
ElementW Messages postés 5690 Statut Contributeur -
ElementW Messages postés 5690 Statut Contributeur -
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
===================
Fifo_client
===========
[/B]#! /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
===================
Fifo_serveur
[/B]#! /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
===================
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
===================
Fifo_client
===========
[/B]#! /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
===================
Fifo_serveur
[/B]#! /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
===================
A voir également:
- Shell fils/pére et FIFO
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Classic shell - Télécharger - Personnalisation
- Branchement prise téléphone adsl 4 fils ✓ - Forum Réseau
- Branchement cable téléphonique 4 fils ✓ - Forum câblage
- Branchement prise jack 3 fils ✓ - Forum Audio