Article View: ch.comp.os.linux
Article #18378Re: Pipe-Frage
From: clemi
Date: Tue, 21 Mar 2000 00:00
Date: Tue, 21 Mar 2000 00:00
43 lines
2663 bytes
2663 bytes
>Hallo, > >Wer kennt sich aus mit Pipes? ich versuchs mal :-) > >Ich f�hre folgenden Befehl aus: > >> scriptA | scriptB > >Beide Scripts brauchen sehr lange f�r die Ausf�hrung. >Wenn ich jetzt scriptA kille, dann wird automatisch >auch scriptB gekillt (weil es ein child-Prozess von >scriptA ist, vermute ich). Jetzt hat es aber >typischerweis noch eine Menge Daten in meiner pipe, >die dadurch verloren gehen. > >Wie kann man scriptA und scriptB per pipe verh�ngen, >so dass scriptB erst terminiert, wenn scriptA nicht >mehr lebt UND die pipe leer ist? Ist "named pipes" >das Stichwort? Wie gebraucht man die? ich bezweifle, dass dies geht, denn unix systeme starten beide scripte, so dass sie parallel laufen. ob "named pipes" die richtige loesung ist, weiss ich nicht. aber versuchen kann man es ja. also, mit mknod kannst du eine "named pipe" erzeugen (schlag am besten in der man page nach, wie man mknod genau handhabt). mknod erzeugt jedenfalls eine datei, die du mittels "ls -l" auflisten kannst. du wirst bemerken, dass am zeilenanfang dieser datei ein "f" steht. "f" ist die abkuerzung fuer "FIFO", also First In First Out. und so funktioniert diese datei auch, als buffer. der eine prozess schreibt was rein, und der andere prozess liest aus. FIFO dateien (oder eben "named pipes") kannst du wie ganz normale dateien behandeln. auf deinen fall bezogen bedeutet dies, dass das script 1 in die FIFO datei reinschreibt und das script 2 die daten von dort ausliest: script1 > fifodatei > script2 ich bin mir allerdings nicht sicher ob die letzte redirection korrekt ist (bin momentan auf NT, und dort kann man so zeugs nicht testen). aber auch hier werden wahrscheinlich beide scripte parallel gestartet, sodass du wieder genau gleich weit bist. auf jedenfall solltest du nicht vergessen die FIFO datei wenn noetig am ende zu loeschen. hoffe ich konnte dir helfen, clemi.
Technical Details
Message-ID:
<8b8bj3$fq9$1@news.swissonline.ch>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<38CFAA34.C6825D98@NOSPAMunifr.ch>Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII X-Google-Thread: f4b73,b808a6e0a7e751ec X-Google-Attributes: gidf4b73,public From: "clemi" <cdal@swissonline.ch> Subject: Re: Pipe-Frage Date: 2000/03/21 Message-ID: <8b8bj3$fq9$1@news.swissonline.ch> X-Deja-AN: 600480625 Content-Transfer-Encoding: 8bit References: <38CFAA34.C6825D98@NOSPAMunifr.ch> Content-Type: text/plain; charset=ISO-8859-1 X-MimeOLE: Produced By Microsoft MimeOLE V4.71.1712.3 X-Complaints-To: abuse@swissonline.ch X-Trace: news.swissonline.ch 953659811 16201 62.2.96.46 (21 Mar 2000 17:30:11 GMT) Organization: Swiss Online (Cablecom Media), Zurich, Switzerland Mime-Version: 1.0 NNTP-Posting-Date: 21 Mar 2000 17:30:11 GMT Newsgroups: ch.comp.os.linux