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

Linux Discussion :

Capturer le lancement d'un programme et en lancer un autre en plus


Sujet :

Linux

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Points : 102
    Points
    102
    Par défaut Capturer le lancement d'un programme et en lancer un autre en plus
    Bonjour à tous.

    Est-il possible de savoir quand un programme est utilisé ?

    Exemple :

    1- Je lance firefox
    2- Je détecte que firefox vient d'être lancé
    3- Je lance la console.

    Comment pourrait-on faire pour cette étape 2 ?

    Merci du coup de main.

    Dest.

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Dans un prog qui tourne tout le temps, uu liste les processus en cours via top (en coontinue) ou ps ( photo instantané) et dedans tu recherche s'il a Firefox.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Points : 102
    Points
    102
    Par défaut
    Faire tourner top en permanence risque de manger sérieusement des ressources, non ?

    Ce n'est pas top en lui même qui prendrait des ressources mais plutôt la boucle infinie.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    tu fais un while(0) avec un timer tu match si le process que tu veux est lancé, si il l'est tu lance ton autre programme...


    c est pas trop compliqué a faire

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Points : 102
    Points
    102
    Par défaut
    Oui oui bien sûr, c'est pas dur.

    Le tiptop ca aurait été de pouvoir récupérer un signal ou un truc dans le genre.

    Enfin bref, je ne crois pas avoir le choix, je vais me contenter d'une boucle.

  6. #6
    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
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Une solution plus simple consiste à remplacer l'appel par un script qui effectue ce dont tu as envie avant de faire l'appel.

    Exemple :
    renommer /bin/firefox en /bin/application_firefox
    créer un fichier /bin/firefox contenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash
     
    date=`/bin/date`
    echo "lancement de firefox a $DATE" >> /tmp/lancement_firefox
     
    /bin/application_firefox
    ATTENTION :
    • Modifier le nom d'un binaire n'est pas forcément sans conséquences : des applications peuvent vérifier que le binaire en est bien un, ce qui peut poser de (gros) problèmes
    • Ce n'est pas forcément une solution, surtout si le binaire est appelé à être lancé par une application externe.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. [VB.NET]Lancement d'un programme que s'il n'est pas lancé
    Par cyrcroix dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/06/2005, 14h05
  2. Lancement d'un programme au boot d'un ordinateur
    Par chrispdc dans le forum Autres Logiciels
    Réponses: 13
    Dernier message: 25/04/2005, 12h03
  3. [Kylix] Problème au lancement d'un programme
    Par jeanbi dans le forum EDI
    Réponses: 7
    Dernier message: 19/01/2005, 23h00
  4. Réponses: 4
    Dernier message: 21/05/2004, 11h24
  5. Lancement d'un programme java depuis un script php
    Par gexti dans le forum Développement Web en Java
    Réponses: 8
    Dernier message: 07/05/2004, 17h40

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