Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/04/2011, à 23:58

Daikyoka

[Bash] Agir sur un programme déjà lancé

Bonjour,

Je cherche à déterminer s'il y a moyen d'injecter des lignes de commandes dans une application déjà lancée.

Je détaille : je lance un programme dans un terminal, ce programme tourne en permanence. Je souhaite qu'un script bash (ou autre je suis pas raciste) envoie certaines commandes à ce logiciel (le script bash sera lancé par cron à heure fixe).

Y a-t-il un moyen de faire ceci ?

Merci par avance. smile


Ubuntu 8.10 + Windows 7
AMD Athlon 64 X2 6000+
3Go RAM
nVIDIA GeForce 8800 GT 1Go

Hors ligne

#2 Le 27/04/2011, à 00:16

AnsuzPeorth

Re : [Bash] Agir sur un programme déjà lancé

Bjr,
Le plus simple est de passer par un fichier d'échanges, FIFO, si le programme est de ta création.
Si le logiciel en question attend une entrée utilisateur en console, il faut s'amuser avec les fd.
http://forum.ubuntu-fr.org/viewtopic.php?id=445931

Dernière modification par AnsuzPeorth (Le 27/04/2011, à 00:20)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#3 Le 27/04/2011, à 08:54

Daikyoka

Re : [Bash] Agir sur un programme déjà lancé

Bon ok je suis mauvais, j'ai rien compris au script. neutral
Pourtant il s'agit de minecraft_server lancé dans Java également, mais comment utiliser FIFO sur Java ? A quoi sert cette boucle ?


Ubuntu 8.10 + Windows 7
AMD Athlon 64 X2 6000+
3Go RAM
nVIDIA GeForce 8800 GT 1Go

Hors ligne

#4 Le 27/04/2011, à 09:15

FRUiT

Re : [Bash] Agir sur un programme déjà lancé


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#5 Le 27/04/2011, à 10:53

AnsuzPeorth

Re : [Bash] Agir sur un programme déjà lancé

Daikyoka a écrit :

Bon ok je suis mauvais, j'ai rien compris au script. neutral
Pourtant il s'agit de minecraft_server lancé dans Java également, mais comment utiliser FIFO sur Java ? A quoi sert cette boucle ?

La solution proposé par FRUIT est peut être mieux (pas de FIFO à créer, pas de boucle). J'ai jamais utilisé screen, donc je ne pourrais pas t'en dire plus.

Sinon, pour la solution avec le FIFO

mkfifo /tmp/fifo
./minecraft.jar < <(while true; do read n < /tmp/fifo; echo $n; done)

Ensuite, il suffit d'envoyer tes commandes dans le FIFO, depuis un terminal ou depuis un script.

echo 'commande' > /tmp/fifo

Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#6 Le 27/04/2011, à 10:58

Daikyoka

Re : [Bash] Agir sur un programme déjà lancé

Merci beaucoup FRUiT !! Simple et efficace ! big_smile
Enfin, il faut juste comprendre le principe d'attaché/détaché et la grande utilité de l'argument -x. smile

Il y a moyen de mettre la liste des commandes à exécuter par screen dans un bash ? Je veux parler de la création de sa session et des commandes pour lancer minecraft_server. Ou alors de créer une session directement détachée ?

Ansuz, juste pour ma culture, quel est l'avantage de FIFO ?


Ubuntu 8.10 + Windows 7
AMD Athlon 64 X2 6000+
3Go RAM
nVIDIA GeForce 8800 GT 1Go

Hors ligne

#7 Le 27/04/2011, à 11:24

AnsuzPeorth

Re : [Bash] Agir sur un programme déjà lancé

Ansuz, juste pour ma culture, quel est l'avantage de FIFO ?

Aucun !
Mais je ne propose pas les trucs que je n'ai jamais utilisé. Les screen ne m'ont jamais servis.


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#8 Le 27/04/2011, à 11:25

Daikyoka

Re : [Bash] Agir sur un programme déjà lancé

Eh bien ça a le mérite d'être clair au moins ! tongue

Merci bien. smile


Ubuntu 8.10 + Windows 7
AMD Athlon 64 X2 6000+
3Go RAM
nVIDIA GeForce 8800 GT 1Go

Hors ligne