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

Shell et commandes GNU Discussion :

Envoyer une commande à un processus déjà lancé


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut Envoyer une commande à un processus déjà lancé
    Bonjour,

    Je souhaiterais envoyer une commande à un processus déjà lancé.

    Par exemple, envoyer une commande à ce processus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dedserv:~# ps -aux | grep egg
    Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
    ****      8346  0.0  0.2  13756  2548 ?        Sl   Mar04   0:09 ./eggdrop config_beyondservices.cfg
    Cela est-il possible ?

    J'ai vu sur un forum, qu'une personne utilisait cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "commande" | "proccessus"
    L'ayant essayé cela ne marche pas, ou alors je ne l'utilise pas correctement...


    Merci d'avance de m'aider,

    Cordialement,
    Benjamin.

  2. #2
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Bonjour

    Je ne comprends pas ta question. Tu souhaites vérifier si un programme tourne ou pas ?
    Tu n'envois pas de commandes au programme egg mais tu affiches le processus qui correspond au programme egg. J'espère que je ne me trompe pas

    Peux-tu nous donner des informations supplémentaires sur ce que tu souhaites vraiment faire ?

    ++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Je souhaites envoyer une certaine commande à ce processus qui est déjà lancé...

    Voyez-vous ce que je veux dire ?


    Merci d'avance

  4. #4
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Je vois ce que tu veux faire mais quelle commande veux-tu envoyer à ton processus ? Il faut nous donner un exemple

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut
    Une commande interne au programme, par exemple : say Hello

  6. #6
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Citation Envoyé par Life Hunter
    Une commande interne au programme, par exemple : say Hello
    Il faut m'exscuser mais je n'en comprends pas l'utilité

    Pourquoi souhaites-tu envoyé une commande à un programme actif ?

    ++

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Le moyen standard sous Unix pour faire dialoguer les applications est d'utilisé les IPC (file de message, socket ....). Pour commencer simplement tu peux utiliser
    les signaux. Tu crées un programme ( en C) qui doit pouvoir recevoir un signal. Tu peux ensuite lui envoyer des signaux comme SIG_USR1 ou SIG_USR2 par la commande kill du shell et ton programme réagis aux sollicitations.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut
    Pourquoi je souhaites envoyer une commande à un programme actif ? Pour pouvoir à partir d'une interface web par exemple envoyer une certaine commande de ce programme.


    Merci radioman, mais si c'est déjà un programme codé, comment lui envoyer ce genre de signaux ?


    J'essaierais l'envoit de commande avec le programme lancé avec screen.

    Merci d'avance.

  9. #9
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    je crois qu'il y a quelque chose que tu ne saisis pas, et nous non plus par la même occasion :

    ce programme auquel tu voudrais envoyer quelque chose, qu'attend-il pour effectuer ce que tu veux lui faire faire ? une commande ? un clic de souris ?
    C'est un programme avec une interface graphique ? c'est un truc en mode console ?

    Précise un peu ton problème, parce que là on nage....

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Alors en fait c'est un programme que je peux lancer soit en background, soit avec une sorte de console de ce programme qui peut me permmettre d'effectuer des commandes...

    Ce que je voudrais faire, moi, c'est d'envoyer des commandes (que je peux tout aussi bien envoyer au programme quand celui-ci est en mode console) à ce programme lorsqu'il est en background...

    Voyez-vous mieux ce que je souhaites faire ?

    Merci.

  11. #11
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Life Hunter
    Bonjour,

    Alors en fait c'est un programme que je peux lancer soit en background, soit avec une sorte de console de ce programme qui peut me permmettre d'effectuer des commandes...

    Ce que je voudrais faire, moi, c'est d'envoyer des commandes (que je peux tout aussi bien envoyer au programme quand celui-ci est en mode console) à ce programme lorsqu'il est en background...

    Voyez-vous mieux ce que je souhaites faire ?

    Merci.
    ça s'éclaire un peu, mais pas encore vraiment...

    Normalement, ton programme en background, il attend une entrée ????

    ça m'étonnerait fortement....

    Détrompe-moi, mais je pense ce que tu veux faire c'est :

    FABRIQUER un programme qui puisse accepter des commandes , c'est ça ?

    Ou alors il est déjà fabriqué. Mais si il attend un "input" pour exécuter telle ou telle chose, par quel mécanisme A l'HEURE ACTUELLE accepte-t-il les commandes ? Est-il fait pour fonctionner en background, ou c'est une idée que tu as eue ?

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Non, en fait ce programme est connecté à un serveur IRC, il peut etre gérer côté "user", je dirais (donc en tant qu'utilisateur de IRC), et côté "admin" (qui est la console qu'il l'affiche quand je ne le lance pas en background, donc, ca, en ssh)...
    On peut l'administrer tout aussi bien depuis le coté "user"...
    Mais comme je souhaite faire une sorte de panel de gestion que je mettrais sur le web, je souhaites donc ne pas passer par le protocole IRC depuis mes scripts de gestion, et passer directement par SSH pour envoyer certaines commandes à ce programme lancé en background....

    Lorsque ce programme n'est pas lancé en background il m'affiche en SSH une sorte de console, où je peux taper des commandes d'administration que je peux tout aussi bien taper lorsque je suis coté "user"...

    J'espére que je vous ai pas perdu en route....


    J'ai aussi essayé avec des "screen", donc je lance mon programme sans l'option "background" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    screen -dmS bpgest ./egg config.conf
    J'ai ensuite effectuée cette commande pour voir si cela marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    screen -r bpgest -X MACOMMANDE
    Mais cela ne fonctionne pas...


    Merci par avance,
    Amicalement,
    Benjamin.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 25
    Points
    25
    Par défaut
    Bah lance tes commandes en ssh alors non? je vois pas le souci dans ce cas la oO

    ssh login@host "commande"

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut
    Non je ne peux pas puisque pour administrer ce programme il faut être dans le programme même vu qu'il a une sorte de console...

  15. #15
    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
    si ce programme ouvre un "console" , il faut savoir si cette console est un terminal virtuel ou pas .
    Si c'est un terminal virtuel (tty ou stty ou meme ptty) il devrait etre possible d'ouvrir celle si en entrée et d'y injecter des "messages", juste qu'il faut aussi recuperer la sortie.

    les commandes ps et/ ou who devrait permettre de recuperer un nom de console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ps -ef | grep ton_programme
    en 6 eme colonne il y a le terminal (ou ? si aucun)

    ensuite essayer de passer des commandes , s'il y a une tty, comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "ma commande" > /dev/la_tty_trouvée.

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut
    Je viens d'essayer, en 6ème colonne un "?" est affiché donc il ne doit pas y en avoir...

    Mon programme lance une console mais elle est propre à lui-même...

Discussions similaires

  1. [.NET] envoyer une commande clavier à une application
    Par tlemcenvisit dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 14/09/2007, 15h45
  2. Envoyer une commande Telnet (bibliothèque Jakarta)
    Par XKCorp dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 19/09/2006, 13h57
  3. Envoyer une commande periodiquement dans l'applet
    Par Battosaiii dans le forum Applets
    Réponses: 2
    Dernier message: 11/12/2005, 16h57
  4. Comment envoyer une commande en HTTP ?
    Par Promeneur dans le forum Web & réseau
    Réponses: 5
    Dernier message: 08/06/2005, 17h45
  5. Comment envoyer une commande à une console ?
    Par seb_asm dans le forum Assembleur
    Réponses: 3
    Dernier message: 27/03/2004, 14h09

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