Zeichen an Prozess senden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
SlasHi
Beiträge: 39
Registriert: 09.10.2003 13:16:13

Zeichen an Prozess senden

Beitrag von SlasHi » 13.01.2004 08:12:08

Ich habe mal eine Grundlegende Frage, weil ich dazu nichts gescheihtes bei Google gefunden habe:

Wie kann ich ein oder mehrere Ascii-Zeichen an ein laufendes Programm senden.

Z.B. wuerde ich gerne ein remote-tool entwickeln um einen server zu administrieren.

Wenn man ein Programm mit & startet am ende, läuft es im Hintergrund.
Gut, nur wie kann ich dann einen Tastdruck (besser waere das senden eines Strings) an das Programm senden?

Thx 4 help

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Re: Zeichen an Prozess senden

Beitrag von tylerD » 13.01.2004 08:44:10

SlasHi hat geschrieben:Ich habe mal eine Grundlegende Frage, weil ich dazu nichts gescheihtes bei Google gefunden habe:

Wie kann ich ein oder mehrere Ascii-Zeichen an ein laufendes Programm senden.
Das macht man normalerweise mit Interprozesskomunikation. Dinge nach dennen du suchen kannst wären Shared Memory, (Named) Pipes, Semaphoren. Ein Anfang ist vielleicht [1].
SlasHi hat geschrieben: Z.B. wuerde ich gerne ein remote-tool entwickeln um einen server zu administrieren.
Sowas wird in aller Regel über TCP/IP Sockets gelöst. Der Server lauscht an einem Administationsport und ein Admintool connected sich als Klient dorthin und sendet dann halt Kommandos in irgendein spezifizierten Protokoll.

Nur wenn du definitiv sagen kannst das du den Prozess nur auf der selben Maschine "steuern" willst und unbedingt keine Sockets verwenden willst, würd ich dir obiges empfehlen. Dort Brauchst du auch ein 2. Programm welches in die vorher irgendwie definierte Pipe oder Memory reinschriebt und der Dienst müsste das dann halt irgendwie auswerten.

cu


[1] http://su2.info/uni/li/ipc_net_paper/node2.html
Zuletzt geändert von tylerD am 13.01.2004 08:48:14, insgesamt 1-mal geändert.

Benutzeravatar
ckihm.deb
Beiträge: 263
Registriert: 26.12.2002 18:49:38
Wohnort: Saarbrücken

Beitrag von ckihm.deb » 13.01.2004 08:45:10

Da gibt es mehrere Möglichkeiten. Von einer habe ich Ahnung, von einer anderen habe
ich mal gelesen.

Wenn es sich um ein remote Tool handelt, würde ich auf die Klassische Client-Server
Struktur zurückgreifen. Einen Daemon der als Server auf der remote Seite fungiert, und
ein Client Programm, mit dem ich den Daemon steuere. Das ist relativ einfach über Socket
Programmierung zu erreichen. Dies kannst du auch so mit ziemlich allen Sprachen und
Script-Sprachen erreichen. Am einfachsten finde ich es mit Java oder Perl. Aber auch
mit C ist dies nicht so schwer.

Eine gute Einführung in die Socket-Programmierung mit C unter Linux findest du z.B. hier
http://www.linux-magazin.de/Artikel/aus ... tem10.html

Wenn sich das remote Programm auf dem gleichen lokalen Rechner befindet, kann man
glaube ich auch pipes benutzen, damit zwei Prozesse miteinander kommunizieren.
Aber da ich da nicht so viel Ahnung habe, sage ich dazu nichts.

Gruss
Christian

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 13.01.2004 12:36:19

Mir fällt gerade eine ganz tolle Möglichkeit ein: man könnte dem Prozess die Daten bitweise senden; ein SIGUSR1 für eine 0 und SIGUSR2 für eine 1. Das wäre bestimmt effektiv. ;)

Ich muss mal sofort das EPA anschreiben. Hat jemand gerade mal 50,000 ??
Zuletzt geändert von Joghurt am 13.01.2004 13:02:38, insgesamt 1-mal geändert.

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 13.01.2004 12:51:38

Joghurt hat geschrieben:Mir fällt gerade eine ganz tolle Möglichkeit ein: man könnte dem Prozess die Daten bitweise senden; ein SIGUSR1 für eine 0 und SIGUSR2 für eine 1. Das wäre bestimmt effektiv.

Ich muss mal sofort das EPA anschreiben. Hat jemand gerade mal 50,000 ??
Hast du da vielleicht "Joke" Quotes vergessen ;) ?

eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 13.01.2004 13:01:14

Was sind denn "Joke" Quotes?
Achso, Smileys! Ich dachte, das wäre offensichtlich.

BTW: Ist doch ein Smiley! :twisted:

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 13.01.2004 13:29:00

Joghurt hat geschrieben:Was sind denn "Joke" Quotes?
Achso, Smileys! Ich dachte, das wäre offensichtlich.

BTW: Ist doch ein Smiley! :twisted:
Ach das war nur ein Scherz? Ich hatte gerade angefangen das zu implementieren. So verarscht du mich also 8O

cu

Benutzeravatar
falx
Beiträge: 199
Registriert: 03.03.2003 15:12:09
Wohnort: Konstanz
Kontaktdaten:

Beitrag von falx » 13.01.2004 13:41:18

Jaha... der (oder das?) Joghurt duscht anscheind jeden Morgen mim Clown...

oder mit Lego :?

:D :wink:
There are two things in the world I hate the most: People intolerant to other peoples distros... and SuSE.

Antworten