PID einer aufgerufenen Funktion in der bash

Florian Lohoff f at zz.de
Sat Apr 3 12:14:02 CEST 2010


On Thu, Apr 01, 2010 at 10:47:00PM +0200, Pierre Bernhardt wrote:
> Hallo,
> 
> wenn ich einen Process forke dann kann der Sohn mit getpid seine
> eigene PID heraus finden.
> 
> Wenn ich in der bash so etwas mache, wie findet dann der
> verbliebene Subprozess seine eigene PID heraus?
> 
> ( while <bedingung wahr ; do Befehle ; done ; PID=<wie auch immer> ) &
> disown $!
> exit

Kann es sein das du einfach das problem hast das der parent schon
$$ expanded und dadurch das im child nicht mehr geht bzw schon
expanded ist? Siehe auch man bash. Mein trivialansatz war hier
ein seperates shell script was das zur laufzeit macht und nicht zur
commandline parsezeit ...


flo at lifebook:~$ cat printpid 
#!/bin/sh

echo $1 " " $$


flo at lifebook:~$ ./printpid parent ; ( exec ./printpid child ) &
parent   9902
[1] 9903
flo at lifebook:~$ child   9903

[1]+  Done                    ( exec ./printpid child )

Flo
-- 
Florian Lohoff                                                 f at zz.de
"Es ist ein grobes Missverständnis und eine Fehlwahrnehmung, dem Staat
im Internet Zensur- und Überwachungsabsichten zu unterstellen."
- - Bundesminister Dr. Wolfgang Schäuble -- 10. Juli in Berlin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 827 bytes
Desc: Digital signature
URL: <http://lug-owl.de/pipermail/linux/attachments/20100403/5e3af30a/attachment.sig>


More information about the Linux mailing list