Retourner aux forums || Retourner au forum Astuces.divers

Astuces.divers : [X/KDE] Scripter le terminal sous KDE

Posté par Philippe Fremy (page perso, ) le 19 juin 2003
0
Il est possible de piloter l'émulateur de terminal KDE (Konsole) à distance, en utilisant DCOP. Ca peut etre très très pratique. Par exemple, je travaille à l'heure actuelle sur un jeu en reseau. Pour le tester, j'ai besoin de lancer souvent un serveur et deux clients qui se connectent. Chaque programme écrit des informations cruciales sur sa sortie standard, donc les lancer tous en arriere plan avec un simple & n'est pas une solution très pratique: toutes les sorties standards sont mélangées. En plus, ca m'oblige a quitter un par un mes clients et mon serveur. Au lieu de cela, j'ai utilisé un script pour lancer le serveur et chacun des clients dans une des sessions d'une fenêtre konsole. l'appel dcop newSession ouvre une nouvelle session sous konsole, et l'appel sendSession envoie du texte, comme s'il etait tape en ligne de commande. Voici mon script: # launch konsole with remote dcop control enabled konsole --script & # process-id is used to generate the dcop name of konsole kid=konsole-$! echo Konsole is $kid session="session-1" # you need to add a small delay sleep 0.5 echo Starting Camino server # execute the server on the first session dcop $kid $session sendSession "./camino --server --$players" sleep 0.5 echo Starring Camino client phil # create a new session session=`dcop $kid konsole newSession` # execute the first client in the second session dcop $kid $session sendSession './camino --player phil' sleep 0.5 echo Starring Camino client bob # create a new session session=`dcop $kid konsole newSession` # execute the first client in the second session dcop $kid $session sendSession './camino --player bob' Le résultat, c'est un nouvelle konsole avec trois sessions, faisant tourner mon serveur et mes clients. Je peux passer de l'une à l'autre en utilisant shift+curseur droit ou gauche. Il me suffit de fermer la konsole pour tuer mes trois processus d'un coup. Notons que pour des raisons de sécurité, la commande dcop sendSession n'est disponible que si on lance konsole avec l'option --script. Là, j'ai utilisé dcop en shell mais il existes des bindings python, perl, c, c++, java... Toutes les applications KDE peuvent être pilotées ainsi à distance. Cà permet de se faire des petits scripts intelligents.

> Lire le message (10 commentaires, moyenne: 1).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

?

Posté par jmfayard () le 02/07/2003 à 14:49. (lien). Évalué à 1.

[root@simGi2 a]# konsole --version Qt: 3.0.5 KDE: 3.0.3 Konsole: 1.1.3 [root@simGi2 a]# konsole --script konsole: Unknown option '--script'. konsole: Use --help to get a list of available command line options.

  • [^]Re: ?

    Posté par jmfayard () le 07/07/2003 à 12:42. (lien). Évalué à 1.

    Bon je me réponds à moi-même
    Apparemment, ça marche à partir de kde 3.1

Re: Scripter le terminal sous KDE

Posté par Matthieu Moy (page perso, ) le 17/07/2003 à 07:17. (lien). Évalué à 1.

Pour ce genre de choses, on peut aussi faire ça en unix "de base", avec mkfifo, et des cat sur les fifo en question dans différentes fenêtres.

  • [^]Re: Scripter le terminal sous KDE

    Posté par Philippe Fremy (page perso, ) le 28/09/2003 à 15:45. (lien). Évalué à 1.

    Tu peux preciser ? Je saisis pas bien comment tu veux faire.

    • [^]Re: Scripter le terminal sous KDE

      Posté par Jak () le 01/04/2004 à 19:02. (lien). Évalué à 1.

      Un truc de ce genre, je pense :

      mkfifo serveur.fifo
      mkfifo client1.fifo
      mkfifo client2.fifo

      ./ camino --server --$players > serveur.fifo &
      ./camino --player phil > client1.fifo &
      ./camino --player bob > client2.fifo &

      Ensuite, il suffit de faire un cat sur chaque fifo pour voir les différentes sorties.
      Unix, ça roulaizze à fond.

      --
      « Le savoir, n'est-ce pas, est un bien précieux. Trop précieux pour ne pas être partagé. »
      - Battologio d'Epanalepse, in De Cape et de Crocs, Acte VII (Ayroles & Masbou)

Re: Scripter le terminal sous KDE

Posté par Jonathan ILIAS (Jabber id, page perso, ) le 25/07/2003 à 15:21. (lien). Évalué à 1.

mmm... j'ai peut-être mal compris le problème, mais pourquoi pas SSH ?

OK OK, there is more than one way to do it, mais puisqu'il a été fait référence notamment à la sécurité...

  • [^]Re: Scripter le terminal sous KDE

    Posté par Philippe Fremy (page perso, ) le 28/09/2003 à 15:44. (lien). Évalué à 1.

    J'ai l'impression que tu as mal compris le truc. Il s'agit de lancer sur la meme machine un serveur et trois clients, et de pouvoir les tuer facilement ensuite. Je vois pas trop ou ssh interviendrait ici (surtout que c'est des applis graphiques que je lance).

    Sinon, il parait qu'on peut faire la meme chose avec gnome-terminal, a coup de ligne de commande. C'est un truc du genre (j'ai pas la doc sous la main, donc a vous d'adapter):

    gnome-terminal --command='./camino --server --$players' --tab --command='./camino --player phil' --tab --command='./camino --player bob'

Re: Scripter le terminal sous KDE

Posté par ludo P () le 21/10/2003 à 17:58. (lien). Évalué à 1.

Tu peux aussi faire avec 3 xterm...

xterm -e Serveur
xterm -e clien
...

et un control C pour tuer les 3 xterms...

  • [^]Re: Scripter le terminal sous KDE

    Posté par Gérald (page perso, ) le 24/03/2004 à 09:03. (lien). Évalué à 1.

    Ou 1 screen avec 3 shells dedans :)
    Et après tu peut même récupérer ton screen au boulot !

    • [^]Re: Scripter le terminal sous KDE

      Posté par fmr69 () le 24/08/2005 à 06:53. (lien). Évalué à 1.

      Petite question en passant,
      il est possible de lancer en une commande plusieurs shells dans un seul screen ?

Revenir en haut de page || Retourner aux forums || Retourner au forum Astuces.divers