[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

OT: signal and pipeline



Hi,
This one is for UNIX shell gurus. Pointers to a better forum for the question are most welcome. This is what is giving me a headache:

I have a small program that only installs a signal handler for SIGHUP, SIGINT and SIGPIPE and then just loops over sleep(1); printf("hi\n"); fflush(stdout) forever. If I start the program from the shell and interrupt it with CTRL-C from the keyboard, the signal handler is called as expected. If I start it in a pipeline, e.g., myprog | tee myprog.log and press CTRL-C, then tee gets SIGINT and exits. myprog also terminates but the signal handler is not called.

Why is the signal handler not invoked? What signal does myprog need to look out for and is there a particular trick needed to catch it?

Andreas

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at http://profiles.msn.com.



Reply to: