pdksh jako sh

Michal Moskal malekith w pld.org.pl
Sob, 16 Lut 2002, 13:14:48 CET


On Sat, Feb 16, 2002 at 11:22:27AM +0100, GoTaR wrote:
> On Fri, Feb 15, 2002 at 18:39:06 +0100, Jacek Konieczny wrote:
> 
> > Sprawdź:
> > strace -ff -o x.str sh ./x
> > 
> > I powiedz co widzisz w x.str*. Wtedy będzie wiadomo co się dzieje.
> > Mnie wygląda na to, że SIGCHLD dociera do niewłaściwego procesu i go
> > ubija. A może to killall głupieje? 
> 
> Zrobiłem -o x.sh dla skryptów, jakie zamieściłem wyżej w tym wątku, oraz
> -o x.bash po zamianie na #!/bin/bash w x1.

Próbowałem. Pdksh jeśli jest ubijany przez SIGTERM lib SIGINT robi
kill(SIGTERM|INT, 0); co ubija current process group. W shellach
interaktywnych, lub po set -m, każdy proces asynchroniczny jest
w osobnej grupie, więc jest to jeden możliwy workaround. Drugi to
trap 'exit 1' TERM w skrypcie odpalającym proces asynchroniczny.

Czytałem SUS, nie ma tam ani słowa o takim zachowaniu, ale nie ma też
nic co by go zabraniało.

Z komentarzy w kodzie pdksh wygląda na to, że jest to standardowe
zachowenia at&t ksh.

IMHO ma to sens -- skrypt, jeśli jest nienormalnie zakańczany --
sprząta po sobie, but jor milidż maj wary. :) 

-- 
: Michal ``,/\/\,       '' Moskal    | |            : GCS {C,UL}++++$
:          |    |alekith      @    |)|(| . org . pl : {E--, W, w-,M}-
:    Linux: We are dot in .ORG.    |                : {b,e>+}++ !tv h
:  CurProj: Gont Compiler: http://gont.pld.org.pl/  : PLD Team member



Więcej informacji o liście dyskusyjnej pld-devel-pl