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