Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/03/2007, 18h28   #1
Invité régulier
 
Inscription : août 2005
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 52
Points : 9
Points : 9
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 :
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 :
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.
Life Hunter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 21h08   #2
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
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 ?

++
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 12h29   #3
Invité régulier
 
Inscription : août 2005
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 52
Points : 9
Points : 9
Bonjour,

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

Voyez-vous ce que je veux dire ?


Merci d'avance
Life Hunter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 12h59   #4
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Je vois ce que tu veux faire mais quelle commande veux-tu envoyer à ton processus ? Il faut nous donner un exemple
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 16h31   #5
Invité régulier
 
Inscription : août 2005
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 52
Points : 9
Points : 9
Une commande interne au programme, par exemple : say Hello
Life Hunter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 21h12   #6
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
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 ?

++
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2007, 22h45   #7
Invité de passage
 
Inscription : mars 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 2
Points : 2
Points : 2
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.
radioman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2007, 15h07   #8
Invité régulier
 
Inscription : août 2005
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 52
Points : 9
Points : 9
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.
Life Hunter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2007, 15h40   #9
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 741
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 741
Points : 9 975
Points : 9 975
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....
__________________
"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
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2007, 16h55   #10
Invité régulier
 
Inscription : août 2005
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 52
Points : 9
Points : 9
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.
Life Hunter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2007, 18h23   #11
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 741
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 741
Points : 9 975
Points : 9 975
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 ?
__________________
"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
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2007, 14h00   #12
Invité régulier
 
Inscription : août 2005
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 52
Points : 9
Points : 9
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 :
screen -dmS bpgest ./egg config.conf
J'ai ensuite effectuée cette commande pour voir si cela marche :
Code :
screen -r bpgest -X MACOMMANDE
Mais cela ne fonctionne pas...


Merci par avance,
Amicalement,
Benjamin.
Life Hunter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 11h13   #13
Membre à l'essai
 
Inscription : avril 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 24
Points : 21
Points : 21
Bah lance tes commandes en ssh alors non? je vois pas le souci dans ce cas la oO

ssh login@host "commande"
liodev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 11h23   #14
Invité régulier
 
Inscription : août 2005
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 52
Points : 9
Points : 9
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...
Life Hunter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 12h10   #15
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
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 :
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 :
1
2
 
echo "ma commande" > /dev/la_tty_trouvée.
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 13h09   #16
Invité régulier
 
Inscription : août 2005
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 52
Points : 9
Points : 9
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...
Life Hunter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h32.


 
 
 
 
Partenaires

Hébergement Web