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 :

[Systeme] Processus en cours d'éxécution


Sujet :

POSIX C

  1. #1
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut [Systeme] Processus en cours d'éxécution
    Salut,


    J'ai écrit un programme qui doit tourner en tache de fond.
    Dans un autre programme, je voudrais vérifier que ce programme est toujours en éxécution.

    En gros je voudrais savoir comment fait la commande ps pour obtenir la liste des processus.
    Le tout en C bien entendu

    Si possible une solution standard.

    Merci d'avance

    a++

  2. #2
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    os ?

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    bonjour,

    Si Windows, le plus simple est d'utiliser les PSAPI

    EmptyWorkingSet
    EnumDeviceDrivers
    EnumPageFiles
    EnumProcesses
    EnumProcessModules
    GetDeviceDriverBaseName
    GetDeviceDriverFileName
    GetMappedFileName
    GetModuleBaseName
    GetModuleFileNameEx
    GetModuleInformation
    GetPerformanceInfo
    GetProcessMemoryInfo
    GetWsChanges
    InitializeProcessForWsWatch
    QueryWorkingSet
    Salut

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par la drogue c'est mal
    os ?
    Oups...
    Je suis con je dis pas le plus important: système Unix.

    pipin, merci mais c'est pas bon pour moi...

    a++

  5. #5
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut Re: [Systeme] Processus en cours d'éxécution
    Citation Envoyé par adiGuba
    En gros je voudrais savoir comment fait la commande ps pour obtenir la liste des processus.
    La commande ps n'existe que sous Linux , non ?

    Nas'

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut Re: [Systeme] Processus en cours d'éxécution
    Citation Envoyé par NASKY
    La commande ps n'existe que sous Linux , non ?

    Nas'
    Non sous Unix aussi...

    Mais elle doit bien utilisé des appels systèmes standard !!!
    J'arrive pas à les trouver

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    salut,

    as tu essayer d'utiliser des fonctions de recouvrement type exec
    pour lancer la commande ps ???

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    yogie: justement j'aurais préférré le faire avec des appels-systèmes en C plutot qu'avec un exec() et d'avoir a interprété le retour de la commande ps...

    Mais bon je crois que je vais faire comme ca...

    Merci...

    a++


    PS: Je ne met pas [résolu] dans le titre parce-que ce n'est pas exactement ce que je voulais...

  9. #9
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    Pour info, j'ai lu que 'ps' va lire les info dans le repertoire
    /proc ou par pid il y a un sous repertoire avec des fichiers
    stat,mem,....

    Salut

  10. #10
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    pipin: oui j'ai vu ca quelque part, mais ce n'est pas standard je pense...
    Je m'explique: mon appli doit fonctionner sur des serveurs unix (même si certain devront migrer vers linux)
    Mais sur les Unix ce fameux repertoire proc n'existe pas...

  11. #11
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    salut adiGuba,

    je reviens a la charge avec mes fonctions de recouvrement type exec.
    je parlais d'utiliser le primitive execlp() en C,(si je me trompe pas c bien un appel systeme).

    en creant un processus fils + un pipe en redirigeant la sortie standard vers le pipe le processus pere recupere ainsi le resultat de la commande ps (apres je ne sais pas ce que tu veux en faire).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    execlp("ls","ls",0);
    @+

  12. #12
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Resalut yogie,

    J'avais très bien compris de quoi tu parlais.
    Mais je recherchais une méthode pour récupérer les processus actif sans appellé d'autres programmes...

    Mais je me suis résigné a faire comme cela puisque je n'ai rien trouvé...

    Merci

    En gros j'ai fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    char buffer[256];
    FILE *ps;
     
    ps = popen ("ps -ef | grep monprog", "r");
     
    while ( fgets (buffer, 256, ps) != NULL )
    {
             // Analyse de la ligne avec strtok
    };
     
    pclose (ps);
    popen() et pclose() sont similaire à fopen() et fclose() sauf qu'elles agissent sur une commande du shell au lieu d'un fichier...

    a++

  13. #13
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    ok,

    chouette je savais pas a quoi servait popen() et pclose()
    now je sais.
    @+

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2002
    Messages : 19
    Points : 25
    Points
    25
    Par défaut
    Salut

    Un autre solution qui prendrais plus de temp serais de regarder les sources de ps de linux, mais la encore je ne sais pas si ca serais compatible avec les autres unix.

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

Discussions similaires

  1. Lire la variable static d'un processus en cour d'éxécution
    Par Yohann_Ar dans le forum Framework .NET
    Réponses: 1
    Dernier message: 27/02/2008, 11h00
  2. Réponses: 1
    Dernier message: 21/07/2006, 18h43
  3. Changement d'utilisateur en cours d'éxécution
    Par Audin'S dans le forum Windows
    Réponses: 4
    Dernier message: 16/06/2006, 14h00
  4. Rafraichir une Frame en cours d'éxécution
    Par Tandric dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 25/03/2006, 06h51
  5. Tester si une procedure est en cours d'éxécution
    Par tipiweb dans le forum Langage
    Réponses: 3
    Dernier message: 27/07/2005, 14h34

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