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

Administration système Discussion :

Récupérer le nom du process


Sujet :

Administration système

  1. #1
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut Récupérer le nom du process
    bonjour,
    est ce que c'est possible de récupérer le nom d'un process à partir de son PID? si oui, quelle commande permet de le faire?
    merci d'avance

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    pidof fait l'inverse de ce que tu veux .
    Sinon a base de ps et de cut tu peux magouiller.
    Il doit exister un commande

  3. #3
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    je doute bien que je puisse y arriver à base de ps car j'ai des commandes de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/local/j2re1.4.2_06//bin/java -server -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xbootclasspath:/BZFHOMTT/home/bzfhomtt/server/libs/vbjorb.jar:/usr/local/j2re1.4.2_06//lib/rt.jar -Dcalypso.home=/BZFHOMTT/home/bzfhomtt/server -Dsdd.marketdata.client.instanceName=BZF -Dsdd.marketdata.client.autorecovery=true -Dsdd.marketdata.client.autostart=false -Dcorba.config.file=/BZFHOMTT/home/bzfhomtt/server/config/jcf-eds.xml -DclientEDS.config.file=/BZFHOMTT/home/bzfhomtt/server/config/ceds.properties -Dapp.dir=/BZFHOMTT/home/bzfhomtt/server -Duser.home=/BZFHOMTT/home/bzfhomtt -Duser.dir=/BZFHOMTT/home/bzfhomtt/server com.calypso.apps.startup.StartTaskEngine -logfile /BZFHOMTT/home/bzfhomtt/log/TaskEngine-HOM01.log -userhome /BZFHOMTT/home/bzfhomtt -nogui -env HOM01 -user calypso_user -password quemonott3
    et ce n'est pas du tout évident de récupérer le nom du process là-dedans
    dans ce cas le nom de l'appli qui est lancée est "StartTaskEngine"

  4. #4
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps aux | grep StartTaskEngine | cut -f3 -d' '
    C'est pas très propre, il y a mieux à faire je pense...

  5. #5
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    As-tu essayé de regarder dans l'arborescence /proc/numero_du_process pour voir si un fichier peut contenir une info qui t'intéresserait (genre cmdline, ou bien la valeur qui est entre parenthèses dans stat, ou bien la ligne Name: dans status) ???

  6. #6
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    le problème est que je n'ai pas que ça, il doit y avoir une dizaine comme ça...
    à chaque fois je répète cette commande ou il y a moyen de faire des groupement?

  7. #7
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 259
    Points : 2 424
    Points
    2 424
    Par défaut
    Si tu as une liste des PID qui t'intéressent, tu peux faire une boucle FOR dans ton script

    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in $pid
    do
        ps aux | grep $i | cut -f3 -d' '
    done
    À affiner !

  8. #8
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    tu peux aussi utiliser pgrep qui fait exactement ce que tu veux

  9. #9
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Citation Envoyé par zul
    tu peux aussi utiliser pgrep qui fait exactement ce que tu veux

    Chapeau bas.

  10. #10
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    ok merci beaucoup pour les réponses
    je vais éssayer tout ça et je vous tiens au courant

  11. #11
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    j'ai oublié de vous dire en fait que ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/local/j2re1.4.2_06//bin/java -server -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xbootclasspath:/BZFHOMTT/home/bzfhomtt/server/libs/vbjorb.jar:/usr/local/j2re1.4.2_06//lib/rt.jar -Dcalypso.home=/BZFHOMTT/home/bzfhomtt/server -Dsdd.marketdata.client.instanceName=BZF -Dsdd.marketdata.client.autorecovery=true -Dsdd.marketdata.client.autostart=false -Dcorba.config.file=/BZFHOMTT/home/bzfhomtt/server/config/jcf-eds.xml -DclientEDS.config.file=/BZFHOMTT/home/bzfhomtt/server/config/ceds.properties -Dapp.dir=/BZFHOMTT/home/bzfhomtt/server -Duser.home=/BZFHOMTT/home/bzfhomtt -Duser.dir=/BZFHOMTT/home/bzfhomtt/server com.calypso.apps.startup.StartTaskEngine -logfile /BZFHOMTT/home/bzfhomtt/log/TaskEngine-HOM01.log -userhome /BZFHOMTT/home/bzfhomtt -nogui -env HOM01 -user calypso_user -password quemonott3
    est une seule ligne en fait et qui correspond à la commande de lancement d'une application...
    Citation Envoyé par zul
    tu peux aussi utiliser pgrep qui fait exactement ce que tu veux
    sinon pgrep ne fait pas ce que je veux malheureusement car je ne connais pas les noms de tous les process qui sont lancés et je ne peux pas les parcourir à caus de leur complexité... c'est pour ça que je voudrai pouvoir récupérer le nom du process à partir de son PID.

  12. #12
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Désolé j'avais mal lu la question.
    La solution de 2EurosCent me parait bien.

  13. #13
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par zul
    Désolé j'avais mal lu la question.
    La solution de 2EurosCent me parait bien.
    oui en éffet sinon il faut que je liste tous les process qui m'intéressent et je les passent en paramètre au script...
    je crois que je vais faire comme ça...
    merci en tout cas

  14. #14
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ebola@gentoo ~ $ ps -e | grep 7997
     7997 tty1     00:00:00 bash
    moi ca me parait bien

    fin, j'ai tetre mal compris la question

  15. #15
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    finalement voici mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/bin/ksh
    clear
     
    /usr/ucb/ps -auxwww > processes.log
    tmp="";
    echo $tmp > result.log;
    for i in $*
    do
    	grep -v process.sh | grep $i processes.log > tmp.log
    	awk 'NR > 1{print "user="$1",","pid="$2",","cpu="$3",","ram="$4";"}' tmp.log >> result.log
    done
     
    rm processes.log
    rm tmp.log
    il calcule ce que je veux sauf que je voudrai ajouter une colonne au fichier result.log sous la forme "processname=$i" (à chaque itération de la boucle, $i est le nom d'un parametre du script) pour chaque ligne dans la boucle, sauf que j'y arrive pas avec awk car apparamment $i a une autre signification pour lui.
    est ce que quelqu'un sait comment je dois faire?
    dites-moi aussi si j'ai un truc mal écrit dans mon code...
    merci

  16. #16
    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
    awk ne connait pas les parametres shell il faut lui "repasser" ceux donc on a besoin dedans le script awk (man awk) de memoire (pas ma machine sous la main), awk var=$i et utiliser $var dans awk.

  17. #17
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par MarcG
    awk ne connait pas les parametres shell il faut lui "repasser" ceux donc on a besoin dedans le script awk (man awk) de memoire (pas ma machine sous la main), awk var=$i et utiliser $var dans awk.
    tu es sûr qu'il y a cette commande?

  18. #18
    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
    non c'est pour cela que j'indique le man ......
    allez c'est un jour ensoleillé :
    http://man.developpez.com/man1/awk.1.php
    et plus precisement cette partie :
    OPTIONS

    gawk accepte les options suivantes, listées alphabétiquement :

    -F sc
    --field-separator sc Utiliser sc en tant que séparateur de champs (la valeur de la variable prédéfinie FS).
    -v var=val
    --assign var=val Affecter la valeur val à la variable var, avant que l'exécution du programme ne débute. De telles valeurs de variables sont accessibles au bloc BEGIN d'un programme AWK.
    -f fichier-programme
    donc awk -v var=$i
    !

  19. #19
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    donc awk -v var=$i
    ça marche pas sous unix
    il faut trouver autre chose...

  20. #20
    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
    donne une partie significative de ton script et l'usage dans awk de "var"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Donner un nom à un process
    Par shaiHulud dans le forum Général Python
    Réponses: 0
    Dernier message: 01/07/2011, 10h54
  2. changer le nom de process d'un job actif
    Par nicolas_lepot dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/05/2008, 14h14
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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