/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
stdin på backgroud job...
Fra : Thorbjørn Jørgensen


Dato : 22-05-04 19:59

Hej
Jeg har et program der kører i bagrunden af en shell, som man via stdin kan
skrive kommandoer til, når der kører i forgrunden. Nu skal jeg via et script
sende kommandoer til programmet mens det kører. Hvordan gør jeg det? Kan jeg
på en eller anden måde komme i kontakt med dens stdin selvom den er i
baggrunden, eller er der en anden smart metode?

Mvh
Thorbjørn



 
 
Morten Guldager (22-05-2004)
Kommentar
Fra : Morten Guldager


Dato : 22-05-04 20:33

Sat, 22 May 2004 at 18:59 GMT Thorbjørn Jørgensen wrote
> Jeg har et program der kører i bagrunden af en shell, som man via stdin kan
> skrive kommandoer til, når der kører i forgrunden. Nu skal jeg via et script
> sende kommandoer til programmet mens det kører. Hvordan gør jeg det? Kan jeg
> på en eller anden måde komme i kontakt med dens stdin selvom den er i
> baggrunden, eller er der en anden smart metode?

Ja, der er flere mulighedder. Den simpleste som ofte virker er:

Lav en named pipe med mknod:

mknod komando_kanal p

start din applikation med stdin fra din pipe:

(while true; do cat komando_kanal; done) | ./app

send instrukser til din applikation med echo:

echo "do magick" > komando_kanal


/Morten

Peter Jensen (22-05-2004)
Kommentar
Fra : Peter Jensen


Dato : 22-05-04 20:45

Morten Guldager wrote:

> Lav en named pipe med mknod:
>
> mknod komando_kanal p

Eller alternativt bare med 'mkfifo komando_kanal' (damn, hvor er der
mange måder at gøre tingene på

--
PeKaJe

To be awake is to be alive. -- Henry David Thoreau, in "Walden"

Thorbjørn Jørgensen (23-05-2004)
Kommentar
Fra : Thorbjørn Jørgensen


Dato : 23-05-04 10:57

Hej
> Ja, der er flere mulighedder. Den simpleste som ofte virker er:
>
> Lav en named pipe med mknod:
>
> mknod komando_kanal p
>
> start din applikation med stdin fra din pipe:
>
> (while true; do cat komando_kanal; done) | ./app
>
> send instrukser til din applikation med echo:
>
> echo "do magick" > komando_kanal

Jeg takker mange gange... det var jo lige det jeg skulle bruge...

Mvh
Thorbjørn



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste