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

POSIX C Discussion :

comment obtenir le PID par le nom


Sujet :

POSIX C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut comment obtenir le PID par le nom
    Bonjour a tous
    j'ai une application en C sous linux qui doit tuer une autre mais je n'ai que le nom de ce process
    et pour le tuer je souhaite faire ainsi
    je voudrais donc obtenir l'ID de ce process.
    cela fait un moment que je cherche mais je n'arrive désespérement pas a trouver d'informations!
    merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    quesion traitée maintes fois, mais ce n'est pas du C... (forum Linux)

    Il faudra faire appel à la fonction C system(), mais la commande pour savoir ce que tu veux sera du style "ps -e | grep nom_du_processus | awk $1 | kill -9" .....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 011
    Points : 1 375
    Points
    1 375
    Par défaut
    Vois du côté de popen() pour récupérer le contenu de ps -ef | grep ton_process

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    ok merci beaucoup !

  5. #5
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par Dalean
    Bonjour a tous
    j'ai une application en C qui doit tuer une autre mais je n'ai que le nom de ce process
    et pour le tuer je souhaite faire ainsi
    je voudrais donc obtenir l'ID de ce process.
    cela fait un moment que je cherche mais je n'arrive désespérement pas a trouver d'informations!
    merci d'avance
    Ce n'est pas vraiment propre au langage C car la fonction system() introduit une perte de portabilité de par son utilisation. Si tu es sous Linux, tu as killall. Sous Linux et BSD, tu as pkill qui est un peu 'plus' portable. man -k kill sur ton système pour voir les commandes/fonctions te permettant d'envoyer des signaux à tes processus.

    A+

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Foobar1329
    Hello,



    Ce n'est pas vraiment propre au langage C car la fonction system() introduit une perte de portabilité de par son utilisation. Si tu es sous Linux, tu as killall. Sous Linux et BSD, tu as pkill qui est un peu 'plus' portable. man -k kill sur ton système pour voir les commandes/fonctions te permettant d'envoyer des signaux à tes processus.

    A+


    le P.O précise sur Linux, et kill, ps, grep, et awk sont dans toutes les versions *n*x ...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #7
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par souviron34


    le P.O précise sur Linux, et kill, ps, grep, et awk sont dans toutes les versions *n*x ...
    Oui, pas vu la précision du PO qu'il était sur Linux. Donc si il veut faire court, killall ou pkill, sinon il faut effectivement utiliser ps + grep + awk + kill pour un maximum de portabilité. C'est le PO qui voit.

    Entre parenthèses (awk nitpick), la commande serait plutôt ps -e | grep <nom_processus> | awk '{ print $1}' | kill -9

    A+

  8. #8
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 011
    Points : 1 375
    Points
    1 375
    Par défaut
    Excusez mon ignorance, mais qu'est-ce le PO ?

  9. #9
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Citation Envoyé par muad'dib
    Excusez mon ignorance, mais qu'est-ce le PO ?
    Posteur Original. OP en anglais.

    A+

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Foobar1329
    Entre parenthèses (awk nitpick), la commande serait plutôt ps -e | grep <nom_processus> | awk '{ print $1}' | kill -9
    Absolument....

    Mais j'avais mis "du style"

    Faut quand même savoir un peu ce qu'on fait.. donc quelques "man" s'imposent...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/08/2009, 19h39
  2. Réponses: 2
    Dernier message: 24/04/2006, 21h08
  3. comment récupere des element par le nom de la balise?
    Par MASSAKA dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/08/2005, 19h59

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