:: Re: [DNG] Mini init script written …
Startseite
Nachricht löschen
Nachricht beantworten
Autor: karl
Datum:  
To: dng
Betreff: Re: [DNG] Mini init script written in Perl boots.
Arnt:
...
> Processes cannot adopt children; the kernel foists processes on pid 1
> without asking either pid 1 or any other process.


??? I see no problems doing a wait() in a program to catch a childs
termination. There even is an example in wait()'s manpage.

> Bash's source code is very, very large compared to zsh, which offers
> roughly the same functionality. The extra lines of code code have to do
> something, so it's entirely possible that bash tries to duplicate the
> kernel's list of children. Or not. I'm not going to look, it doesn't seem a
> useful thing to do.


Messages like:

$ xpdf ~/a.pdf &
[1] 11127
$ 
[1]+  Done                    xpdf ~/a.pdf
$ 


do point to some ability in bash to detect when children finishes.
That could be done by catching SIGCHLD. Using sigaction() when setting
up a signal handler gives you the possibility to extract the sending
process pid so you can wait() it without blocking.

And bash do have a list of its direct childrens:

$ for i in 1 2 3; do xpdf ~/a.pdf & done
[1] 11294
[2] 11295
[3] 11296
$ jobs
[1]   Running                 xpdf ~/a.pdf &
[2]-  Running                 xpdf ~/a.pdf &
[3]+  Running                 xpdf ~/a.pdf &
$


Regards,
/Karl Hammar

-----------------------------------------------------------------------
Aspö Data
Lilla Aspö 148
S-742 94 Östhammar
Sweden
+46 173 140 57