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 POSIX Discussion :

Shell - Il est où le fils ?


Sujet :

Shell et commandes POSIX

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut Shell - Il est où le fils ?
    Bonjour,

    Un traitement mal fait cherche son nombre de fils, il a toujours fonctionné sur un serveur malgré ses défauts. Exécuter sur un autre serveur plus rien ne va !

    démonstration :

    - serveur 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    root@SERVEUR1:/manip>echo $(ps -ef | grep $$ |grep -v grep| grep 'sh' | awk '{print $3}' | grep $$)
    10 fois de suite aucun resultat ne sort !


    - serveur 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    root@SERVEUR2:/manip>echo $(ps -ef | grep $$ |grep -v grep| grep 'sh' | awk '{print $3}' | grep $$)
    725064
    root@SERVEUR2:/manip>echo $(ps -ef | grep $$ |grep -v grep| grep 'sh' | awk '{print $3}' | grep $$)
    725064
    10 fois de suite toujours le même résultat !


    - serveur 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [SERVEUR3]/manip> echo $(ps -ef | grep $$ |grep -v grep| grep 'sh' | awk '{print $3}' | grep $$)
     
    [SERVEUR3]/manip> echo $(ps -ef | grep $$ |grep -v grep| grep 'sh' | awk '{print $3}' | grep $$)
    2289776
    [SERVEUR3]/manip> echo $(ps -ef | grep $$ |grep -v grep| grep 'sh' | awk '{print $3}' | grep $$)
     
    [SERVEUR3]/manip> echo $(ps -ef | grep $$ |grep -v grep| grep 'sh' | awk '{print $3}' | grep $$)
    Aléatoirement le sous shell apparaît !

    Quelqu'un a une idée d'où cela vient ? (KSH et AIX)

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 382
    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 382
    Par défaut
    Bonjour,

    Question: Et si tu fais juste un ps -ef, est-ce que tu retrouves bien les process fils sur tout tes serveurs ?

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 298
    Par défaut
    Bonjour

    Pas de pot. Le pid de ton interpreteur est une sous partie d'un autre pid. Que donne la commande echo $$?

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut
    Réponses:

    root>ps -ef|grep 729196
    root 729196 725064 0 15:48:58 pts/1 0:00 -ksh
    root 806938 618706 0 15:49:04 pts/3 0:00 grep 729196
    root 946304 729196 0 15:48:58 pts/1 0:00 -ksh
    root 1146944 729196 0 15:48:58 pts/1 0:00 -ksh

    root>echo $$
    618706

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 382
    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 382
    Par défaut
    Là, je suis perdu, tu fais un grep sur un n° de processus qui ne correspond pas à celui de $$ alors que dans ton post de départ tu ne te base que sur $$.
    Cela manque de cohérence ici... ???

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut
    non c'est une erreur, j'ai répondu de but en blanc a deux questions différentes !

    Si je fais ps -ef, je vois bien les fils comme la capture. Et echo $$ rempli son travail il donne bien le pid !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >echo $$
    5578922
    >ps -ef|grep $$
        root 3895356 5578922   0 16:51:59  pts/1  0:00 grep 5578922
        root 5578922 4280328   0 15:55:44  pts/1  0:00 -ksh
        root 5648636 5578922   0 16:51:59  pts/1  0:00 ps -ef
    >ps -ef|grep $$
        root 5156912 5578922   0 16:52:09  pts/1  0:00 ps -ef
        root 5578922 4280328   0 15:55:44  pts/1  0:00 -ksh
    Même résultat sur chaque serveurs.


    On va simplifier ! pouvez vous m'expliquer se comportement :


    serveur 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    618706
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    618706
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    618706
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)

    Le sous shell apparaît toujours !

    Serveur 2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    2289776
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)

    Le sous shell n’apparaît aléatoirement !

    Serveur 3:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    Le sous shell n’apparaît jamais !

  7. #7
    Expert confirmé 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 : 49
    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
    Par défaut
    où il est le fils ? bha en général les fils sont au cul des ordinateurs...
    ok je file ....

  8. #8
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 298
    Par défaut
    Pour le serveur 2, j'ai donné mon avis. Pour le 3 et 1, ps -ef ne doit pas donner le même affichage. Du coup, awk met tous à la poubelle pour le serveur 3.

    Suggestion: Pour avoir les fils de l'interpréteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ps -f --ppid $$
    UID        PID  PPID  C STIME TTY          TIME CMD
    user   2222  1661  0 17:52 pts/1    00:00:00 sleep 10
    user   2224  1661  0 17:52 pts/1    00:00:00 ps -f --ppid 1661
    $

  9. #9
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 866
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par MoZeuR Voir le message
    On va simplifier ! pouvez vous m'expliquer se comportement :

    serveur 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    618706
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    618706
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    618706
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)

    Le sous shell apparaît toujours !

    Serveur 2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    2289776
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)

    Le sous shell n’apparaît aléatoirement !

    Serveur 3:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
     
    echo $(ps -ef |grep -v grep|awk '{print $3}' | grep $$)
    Le sous shell n’apparaît jamais !
    Salut

    Si tu veux faire un vrai test, je te suggère ceci
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in $(seq 20)
    do
        ps -ef > ps.$i
    done

    Puis charge à toi d'examiner avec attention les fichier ps.1, ps.2, ps.3, ..., ps.20 pour essayer de comprendre pourquoi le pid 2289776 apparait, n'apparait pas ou apparait aléatoirement...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    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 103
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Si tu veux faire un vrai test, je te suggère ceci
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in $(seq 20)
    do
        ps -ef > ps.$i
    done
    Puis charge à toi d'examiner avec attention les fichier ps.1, ps.2, ps.3, ..., ps.20 pour essayer de comprendre pourquoi le pid 2289776 apparait, n'apparait pas ou apparait aléatoirement...
    Ben, en fait, il me semble que c'est un problème très délicat à investiguer car le résultat de 'ps -ef' dépend très fortement des commandes pipées dans la ligne de commande!

    Comme, sur mon os, je n'ai pas l'option --ppid, j'ai voulu tester et voir quels sont les processus fils. Voici ce que j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo $$
    584   # ça, c'est mon bash
    Le voici avec ses sous-process (et toutes les process qui contiendraient la chaîne 584 quelque part dans le 'ps -ef'):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ps -ef | fgrep $$
      501   584   583   0   0:00.07 ttys000    0:00.14 -bash
      501   840   584   0   0:00.00 ttys000    0:00.00 sleep 10000
        0   972   584   0   0:00.00 ttys000    0:00.00 ps -ef
      501   973   584   0   0:00.00 ttys000    0:00.00 fgrep 584
    Voici ses "vrais" sous-process (ceux dont le champ n°3 (ppid) vaut exactement 584):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ echo "$(ps -ef | fgrep $$ | awk "\$3 = \"$$\" {print}")"
    501 584 584 0 0:00.07 ttys000 0:00.14 -bash
    501 840 584 0 0:00.00 ttys000 0:00.00 sleep 10000
    501 953 584 0 0:00.00 ttys000 0:00.00 -bash
    501 955 584 0 0:00.00 ttys000 0:00.00 fgrep 584
    501 956 584 0 0:00.00 ttys000 0:00.00 awk $3 = "584" {print}
    J'avoue que je suis un peu perplexe avec la 1ère ligne où le bash de départ semble être devenu son propre fils?!?! (par l'opération du saint-OS?)

    Ici, il retrouve son vrai père (583):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ echo "$(ps -ef | fgrep $$)"
      501   584   583   0   0:00.07 ttys000    0:00.16 -bash
      501   840   584   0   0:00.00 ttys000    0:00.00 sleep 10000
      501  1016   584   0   0:00.00 ttys000    0:00.00 -bash
      501  1018  1016   0   0:00.00 ttys000    0:00.00 fgrep 584
    Je suis également perplexe avec le process awk qui disparaît parfois (lorsque je prends l'instruction par défaut (impression de la ligne)):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ echo "$(ps -ef | fgrep $$ | awk "\$3 = \"$$\"")"
    501 584 584 0 0:00.08 ttys000 0:00.17 -bash
    501 840 584 0 0:00.00 ttys000 0:00.00 sleep 10000
    501 1064 584 0 0:00.00 ttys000 0:00.00 -bash
     
    $ echo "$(ps -ef | fgrep $$ | awk "\$3 = \"$$\"")"
    501 584 584 0 0:00.08 ttys000 0:00.17 -bash
    501 840 584 0 0:00.00 ttys000 0:00.00 sleep 10000
    501 1069 584 0 0:00.00 ttys000 0:00.00 -bash
    501 1071 584 0 0:00.00 ttys000 0:00.00 fgrep 584
    501 1072 584 0 0:00.00 ttys000 0:00.00 awk $3 = "584"

  11. #11
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Est-ce que tes serveurs utilisent tous le meme OS, avec le meme niveau de patch ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  12. #12
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 382
    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 382
    Par défaut
    @Jack-ft:
    Je pense que le awk (et le fgrep dans l'exemple) qui n’apparaît que de temps à autre est lié à la sérialisation des commandes.
    Le ps a déjà passé en revue les process alors que le fgrep et le awk ne sont pas encore créés.
    Moi, ce qui m'intrigue le plus, c'est le changement de ppid du père que quand tu rajoute le filtre awk.
    Tu aurais moyen de remplacer le awk par un grep ou sed similaire ?
    Sinon, la première colonne de ton ps, elle représente quoi ?

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    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 103
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    @Jack-ft:
    Sinon, la première colonne de ton ps, elle représente quoi ?
    C'est l'UID (je suis sur un mac):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ uname -a
    Darwin imacjack.home 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386
     
    $ ps -ef | head -1
      UID   PID  PPID   C     STIME TTY           TIME CMD
     
    $ id
    uid=501(jacques) gid=501(jacques) groups=501(jacques),401(com.apple.access_screensharing),204(_developer),100(_lpoperator),98(_lpadmin),81(_appserveradm),80(admin),79(_appserverusr),61(localaccounts),12(everyone)
     
    $ ls -ld .
    drwxr-xr-x@ 59 jacques  jacques  2006 13 jui 09:05 ./
    Je pense que le awk (et le fgrep dans l'exemple) qui n’apparaît que de temps à autre est lié à la sérialisation des commandes.
    Le ps a déjà passé en revue les process alors que le fgrep et le awk ne sont pas encore créés.
    C'est probable!

    Moi, ce qui m'intrigue le plus, c'est le changement de ppid du père que quand tu rajoute le filtre awk.
    Tu aurais moyen de remplacer le awk par un grep ou sed similaire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ echo "$(ps -ef | fgrep $$ | egrep "^ *[1-9][0-9]*  *[1-9][0-9]*  *$$ ")"
      501   840   584   0   0:00.00 ttys000    0:00.00 sleep 10000
      501  1563   584   0   0:00.00 ttys000    0:00.00 -bash
     
    $ echo "$(ps -ef | fgrep $$ | sed -n "/^ *[1-9][0-9]*  *[1-9][0-9]*  *$$ /p")"
      501   840   584   0   0:00.00 ttys000    0:00.00 sleep 10000
      501  1630   584   0   0:00.00 ttys000    0:00.00 -bash
    Autre chose que je ne comprends pas. Pourquoi le formatage change-t-il???

    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
    $ echo "$(ps -ef | fgrep $$ | awk "{print \$0}")"
      501   584   583   0   0:00.09 ttys000    0:00.20 -bash
      501   840   584   0   0:00.00 ttys000    0:00.00 sleep 10000
      501  1592   584   0   0:00.00 ttys000    0:00.00 -bash
      501  1594  1592   0   0:00.00 ttys000    0:00.00 fgrep 584
     
    $ echo "$(ps -ef | fgrep $$ | awk "\$3 = \"$$\"")"
    501 584 584 0 0:00.10 ttys000 0:00.20 -bash
    501 840 584 0 0:00.00 ttys000 0:00.00 sleep 10000
    501 1609 584 0 0:00.00 ttys000 0:00.00 -bash
    501 1611 584 0 0:00.00 ttys000 0:00.00 fgrep 584
    501 1612 584 0 0:00.00 ttys000 0:00.00 awk $3 = "584"
     
    $ echo "$(ps -ef | fgrep $$ | awk "\$3 = \"$$\" {print \$0}")"
    501 584 584 0 0:00.10 ttys000 0:00.22 -bash
    501 840 584 0 0:00.00 ttys000 0:00.00 sleep 10000
    501 1673 584 0 0:00.00 ttys000 0:00.00 -bash
    501 1675 584 0 0:00.00 ttys000 0:00.00 fgrep 584
    501 1676 584 0 0:00.00 ttys000 0:00.00 awk $3 = "584" {print $0}
    Apparemment, ce n'est pas lié au sous-process:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ ps -ef | fgrep $$ | awk "\$3 = \"$$\""
    501 584 584 0 0:00.11 ttys000 0:00.23 -bash
    501 840 584 0 0:00.00 ttys000 0:00.00 sleep 10000
    0 1722 584 0 0:00.00 ttys000 0:00.00 ps -ef
    501 1723 584 0 0:00.00 ttys000 0:00.00 fgrep 584
    501 1724 584 0 0:00.00 ttys000 0:00.00 awk $3 = "584"
     
    $ ps -ef | fgrep $$ | awk "{print \$0}"
      501   584   583   0   0:00.11 ttys000    0:00.23 -bash
      501   840   584   0   0:00.00 ttys000    0:00.00 sleep 10000
        0  1742   584   0   0:00.00 ttys000    0:00.00 ps -ef
      501  1743   584   0   0:00.00 ttys000    0:00.00 fgrep 584
      501  1744   584   0   0:00.00 ttys000    0:00.00 awk {print $0}

  14. #14
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par jack-ft Voir le message
    Autre chose que je ne comprends pas. Pourquoi le formatage change-t-il???
    Parce que tes serveurs ne sont pas identiques, et/ou qu'ils utilisent des versions differentes des outils.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  15. #15
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 382
    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 382
    Par défaut
    Pour le changement de ppid, j'ai trouvé (pas bien de nous faire des frayeurs comme ça ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "toto titi tata" | awk "\$3 = \"tutu\" {print \$0}"
    toto titi tutu

  16. #16
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    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 103
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Parce que tes serveurs ne sont pas identiques, et/ou qu'ils utilisent des versions differentes des outils.
    Non, non, non. Je demandais la différence de formatage entre mes 2 instructions (où les séries d'espaces sont remplacées par une seule espace).
    La réponse suit... (merci disedorgue )

    Citation Envoyé par disedorgue Voir le message
    Pour le changement de ppid, j'ai trouvé (pas bien de nous faire des frayeurs comme ça ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "toto titi tata" | awk "\$3 = \"tutu\" {print \$0}"
    toto titi tutu
    Oops! Je suis vraiment désolé et confus
    Je recommencerai plus... (enfin, j'aimerais! (voir plus loin))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ps -ef | fgrep $$ | awk "\$3 == \"$$\""
      501   840   584   0   0:00.00 ttys000    0:00.00 sleep 10000
        0  1805   584   0   0:00.00 ttys000    0:00.00 ps -ef
      501  1806   584   0   0:00.00 ttys000    0:00.00 fgrep 584
      501  1807   584   0   0:00.00 ttys000    0:00.00 awk $3 == "584"
    Du coup, j'ai retrouvé mon formatage!

    Si c'était possible, je bannirais le '=' de tous les langages de programmation et imposerais ':=' pour l'affectation et '==' pour le test d'égalité.
    Comme ça, il y aurait moins de problèmes et il me semble que les éventuelles confusions apparaîtraient plus clairement (hum... "clarté de la confusion", c'est clair?).

    Évidemment, dans des langages où l'affectation s'appelle 'setq' et la comparaison 'eq' (ou 'equal'), il y a moins de risques de confusion!

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Bonjour,

    Est-ce que tes serveurs utilisent tous le meme OS, avec le meme niveau de patch ?
    Les serveurs 3 et 1 sont des vios, le 3 est une copie du 1. Donc même Os, même patch par contre pas sur le même Host.

  18. #18
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    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 103
    Par défaut
    Du coup, que donne la commande (plus précise pour voir les process fils):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps -ef | fgrep $$ | awk "\$3 == \"$$\""

Discussions similaires

  1. Tester si le node selectionné est un node fils
    Par sihammaster dans le forum VB.NET
    Réponses: 0
    Dernier message: 06/05/2010, 12h44
  2. le changement de shell n'est pas pris en compte
    Par DiverSIG dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 22/02/2010, 16h01
  3. [Xpath] Tester si un noeud est le dernier fils d'un noeud donné
    Par thibaultG dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 08/09/2009, 18h42
  4. Tester si le shell script est lance en background ou pas ?
    Par mhtrinh dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/02/2008, 11h14
  5. [SHELL] Qui est connecté sur ce port
    Par max44410 dans le forum Linux
    Réponses: 3
    Dernier message: 07/05/2007, 02h52

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