PID einer aufgerufenen Funktion in der bash

Frank Bergmann tx-7-12 at tuxad.com
Sun Apr 4 09:49:57 CEST 2010


In Sun, 4 Apr 2010, Florian Lohoff cum veritate scripsit :

> Es war ein proof of concept das du ein anderes problem als das beschriebene
> jagst ...

Manchmal jagt man ein Wildschwein und faengt eine Gulaschkonserve. ;-)

> > Juergens Vorschlag ist die einfachste Moeglichkeit auch fuer alte Kernels 
> > und Bash-Versionen: "read pid rest </proc/self/stat".
> 
> Das ist kein Kernel problem sondern ein variable expansion time problem.

Jetzt hast Du vielleicht etwas falsch verstanden. Ich habe nicht 
geschrieben, dass es ein Kernel- oder Bash-Problem ist. Ich schrieb nur, 
dass Juergens Loesung unabhaengig von der Bash- und Kernelversion (wenn 
nicht gar zu alt) funktioniert.

> for i in `seq 1 4`; do sh -c "( echo $$ \$$ )" & done
> 
> Der trick ist das $$ so zu escapen das die originaere bash das dingen
> nicht expanded - die dann "geforkte" aber ... In diesem fall

Da stellen sich jetzt zwei Fragen:
- Gilt das nur fuer Bash?
- Gilt das nur fuer interaktive Bash-Sessions oder auch im Batchmode? Wenn 
das im Batchmode nicht auftritt, ist es ein Bug.

"read /proc/self/stat" funktioniert uebrigens auch in der dash, der ash, 
der Heirloomshell, der ksh und anderen.

Frank


EDV Frank Bergmann                           Tel.     05221-9249753
LPIC-2 Linux Professional                    Fax      05221-9249754
Elverdisser Str. 25                          email    iservice at tuxad.com
32052 Herford                                USt-IdNr DE237314606

-- 
Experience is that marvelous thing that enables you to recognize
a mistake when you make it again. -- F. P. Jones

Sending unsolicited commercial email to this address may be a violation
of the Washington State Consumer Protection Act, chapter 19.86 RCW.
Das Verschicken unverlangter kommerzieller email an diese Adresse ist
verboten (LG Traunstein, 2 HK O 3755/97 vom 14.10.1997, CR 1998, 171f).




More information about the Linux mailing list