Comment mettre une application en fond et agir dessus ?

Comment mettre une application en fond et agir dessus ? - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 08-12-2013 à 13:53:46    

Bonjour,
 
Je suis en train de créer une webradio avec un raspberry pi.
Débutant sous linux j'implémente chacune des fonctions et là je bloque.
 
Pour lancer la radio par de problème j'utilise le logiciel mplayer avec un script bash dans le init.d.
Comme ca dès que le raspberry se lance la radio se lance.

Code :
  1. mplayer -playlist URL_de_la_radio


 
Il y'a un fichier de configuration dans mplayer qui permet de piloter mplayer. En appuyant sur la touche 'q' mplayer s'arrête, ca fonctionne.
 
Mais je souhaite stopper mplayer à l'aide d'une variable (récupérée par un clavier matriciel relié sur le port GPIO).
Donc dès que j'ai la variable variable=q qui arrive je souhaite envoyer cette commande (mplayer configuré en slave) :

Code :
  1. echo 'quit' > /tmp/fifo


 
Ceci me permettra de couper mplayer. Ca fonctionne si mplayer est dans un terminal et que je lance la commande echo 'quit' dans un autre terminal.
 
Le soucis c'est que mplayer se lance au démarrage et il n'y a donc qu'une fenêtre de terminal.
 
Auriez-vous une idée pour lancer un autre terminal automatiquement ou pour obtenir le prompt pendant que l'application mplayer est lancée ?
Ou alors un moyen de lancer deux processus de script en parallèle dans la phases de l'init.d (par exemple process lecture_radio et process attente_ordre) ?  
 
J'espère avoir été assez clair.
 
Merci,

Message cité 1 fois
Message édité par nba_pit le 08-12-2013 à 14:37:23
Reply

Marsh Posté le 08-12-2013 à 13:53:46   

Reply

Marsh Posté le 08-12-2013 à 15:30:32    

Salut,
 
Peut être voir cette solution : http://pbrisbin.com/posts/controlling_mplayer/ ?


---------------
$ man woman
Reply

Marsh Posté le 16-12-2013 à 18:13:00    

zipe31 a écrit :

Salut,
 
Peut être voir cette solution : http://pbrisbin.com/posts/controlling_mplayer/ ?


 
Merci pour ton lien mais ca ne fonctionne pas pour ce que je cherche faire.  
En effet, cette page indique comment lancé une commande à partir d'un second terminal.
- 1er terminal : mplayer tourne
- 2nd terminal : on envoie la commande "echo XXX"
 

Code :
  1. Now fire up a movie. Go to some other terminal and do the following:


 
Or moi je souhaite lancé une commande à partir du même terminal dans lequel tourne mplayer, ce que je n'arrive toujours pas à faire.
- 1er terminal : mplayer tourne
- 1er terminal : on envoie la commande "echo XXX" (ou autre commande)

Reply

Marsh Posté le 17-12-2013 à 10:14:10    

Re-
 

nba_pit a écrit :

Or moi je souhaite lancé une commande à partir du même terminal dans lequel tourne mplayer, ce que je n'arrive toujours pas à faire.
- 1er terminal : mplayer tourne
- 1er terminal : on envoie la commande "echo XXX" (ou autre commande)


 
Ce n'est pas du tout ce que tu disais dans ton 1er post  :??:  
 

nba_pit a écrit :

Pour lancer la radio par de problème j'utilise le logiciel mplayer avec un script bash dans le init.d.
Comme ca dès que le raspberry se lance la radio se lance.


 
Et de cette façon, je reste persuader que la solution pointée par mon lien devrait marcher  ;)  


---------------
$ man woman
Reply

Marsh Posté le 17-12-2013 à 12:31:38    

Bon en cherchant bien j'ai fini par trouver un truc (toujours avec le système de fifo) :
 

mplayer "tes_options" </dev/null >/dev/null 2>&1 &


 
Ça te rend la main et du coup tu peux lancer tes commandes de pause :
 

echo 'p' > /chemin/fichier.fifo


 
 ;)


Message édité par zipe31 le 22-12-2013 à 12:22:45

---------------
$ man woman
Reply

Marsh Posté le 19-12-2013 à 17:09:14    

perso j'utilise mpd http://www.musicpd.org/
Tu as plein de client Linux, Android,... pour le controler a distance.
 
Cdt

Reply

Marsh Posté le 21-12-2013 à 18:28:17    

Oui mpd me semble tout à fait adapté, plus que mplayer.


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed