[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Background processes receive SIGINT even though they shouldn't
From: |
Ingemar Nilsson |
Subject: |
Re: Background processes receive SIGINT even though they shouldn't |
Date: |
Fri, 13 Jan 2006 10:22:38 +0100 |
User-agent: |
Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Chet Ramey wrote:
> I think you're slightly misunderstanding how job control and process
> groups interact.
Okay.
> When you run test1 from an interactive shell with job control enabled,
> it is placed into a separate process group. The terminal's foreground
> process group is set to test1's process group, which means that group
> receives keyboard-generated signals like SIGINT.
>
> The shell started to run test1 is not interactive, so job control is
> disabled. This means that all processes started by test1 and its
> descendants are placed into the same process group. Since this is
> the terminal's foreground process group, these processes receive the
> SIGINT.
I see, thanks. Then I have another question: Why does test2 below fail
to trap SIGINT when started by test1? It works when I run test2 directly.
test1 (for reference):
### START SCRIPT ###
#!/bin/bash
test2 &
while /bin/true; do
echo test1 sleeping
sleep 5
done
### END SCRIPT ###
test2 (updated):
### START SCRIPT ###
#!/bin/bash
function shutdown {
echo "Shutting down test2..."
exit 0
}
trap shutdown SIGINT
while /bin/true; do
echo test2 sleeping
sleep 5 &
SLEEP_PID=$!
wait $SLEEP_PID
unset SLEEP_PID
done
### END SCRIPT ###
Thanks in advance.
Regards
Ingemar
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iD8DBQFDx3Fd6sVa+fPBo9YRAmUoAJ9ARnxH4rirGcfegpg20/QxWozyBgCfa98o
UE1JbSi4kq6jDM9Q8iOZNLY=
=pxe6
-----END PGP SIGNATURE-----