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

Langage Perl Discussion :

Récupération du PID d'un processus


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut Récupération du PID d'un processus
    Bonjour,

    Je viens de débuter le Perl il y a moins d'une semaine et je me demandais comment récupérer le PID d'un processus (je précise que je travaille sous Windows 7) grâce à des lignes de codes Perl afin de créer un variable avec ce PID.

    Je m'explique ! Je viens de créer un programme qui ferme un processus à son démarrage :

    use strict;
    use warnings;
    use Win32:rocess;
    use Win32;

    my $pid = 3240;
    Win32:rocess::KillProcess($pid, 0);

    et au lieu de taper manuellement le $pid, j'aimerais le récupérer automatiquement en rentrant par exemple le nom de l’exécutable.
    Est ce possible et si oui comment ?


    Merci beaucoup !

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    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
    20
    21
    22
    23
    24
    sub ps{
            my ($pidfile)=@_;
     
            my $exec_time   = 0;
            my $exec_script = '';
            my $exec_pid    = 0;
     
            uptime($pidfile, \$exec_script, \$exec_pid, \$exec_time);
            printf ("\n[$exec_script] already running with pid [$exec_pid] since [$exec_time]\n");
    }
     
    sub uptime{
            my ($pidfile, $exec_script, $exec_pid, $exec_time) = @_;
     
            my $my_ps = new Proc::ProcessTable;
     
            foreach my $my_proc ( @{$my_ps->table} ){
                    if($pidfile->pid eq $my_proc->pid){
                            ${$exec_time}      =   sec2time(time - $my_proc->start);
                            ${$exec_script}    =   $my_proc->cmndline;
                            ${$exec_pid}       =   $my_proc->pid;
                    }
            }
    }
    Si tu écris le pid dans un fichier, tu peux retrouver le pid et le process associé.
    http://search.cpan.org/~jwb/Proc-Pro...rocessTable.pm
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut
    Merci pour cette réponse rapide

    Je dois avoué qu'à première vue, je ne comprends aps tout mais que je vais m'y pencher

    Juste une dernière question, mon problème principal c'est qu'à chaque fois que je relance le processus, son PID change ! Ce code permettra t'il d'éviter ce problème ?

    Merci encore !

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Ton script principal (pas celui qui tue), doit écrire dans un fichier son pid à chaque lancement. Avec le script qui tue, tu récupères le pid du script dans le fichier et tu fais ton office.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut
    D'accord, merci beaucoup

Discussions similaires

  1. Fonctions exec / system : PID d'un processus
    Par boo64 dans le forum Langage
    Réponses: 3
    Dernier message: 30/07/2011, 17h35
  2. Trouver le Pid d'un processus qui appelle un programme
    Par samlecas dans le forum Débuter
    Réponses: 3
    Dernier message: 14/01/2009, 14h10
  3. [Système] Obtenir le PID d'un processus
    Par pjmorce dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 28/08/2008, 20h01
  4. [Système] Récupération du PID Linux
    Par DjSoulz dans le forum Langage
    Réponses: 1
    Dernier message: 20/06/2008, 10h15
  5. Lister les processus et les PID dans une listview .
    Par maxoudu328 dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 16/10/2005, 16h03

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