471,078 Members | 856 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,078 software developers and data experts.

Kill forked processes

Hi,

I have a program A that forks off two other programs, B and C. I need B
and C to both terminate if A is closed, but by using the
subprocess.call() method this seems to not be the case; I can shut down
the "black box" that is program A and B/C will still stay up.

How can I achieve the desired behavior?

Thanks,
Evan

Feb 26 '06 #1
4 1921
kmkz wrote:
I have a program A that forks off two other programs, B and C. I need B
and C to both terminate if A is closed, but by using the
subprocess.call() method this seems to not be the case; I can shut down
the "black box" that is program A and B/C will still stay up.

How can I achieve the desired behavior?


You'll probably need to take a look at the `signal' and `atexit' modules.
These will allow you to write hooks that will get called when your A script
is terminated either by a signal or by reaching one of the "natural"
endpoints.

--
Steve Juranich
Tucson, AZ
USA

Feb 26 '06 #2
Thank you for your reply. I will certainly look into those.

Another question:

Lets say my script A executes two other scripts, B and C. B is a Python
file compiled into an exe and uses the regular black box. C, however,
is a C++ program that I did not write, and have no access to (besides
executing it. ie, i don't have its source). I would like to fork off
the process B and C from A, but make B and C invisible and unable to be
shut down by the user. This way, they have to kill process A.
Unfortunately, this brings me back to the problem I posted above: how
to make the subprocesses dependant on its parent process. Since I have
no access to the C++ program's source I need to come up with a better
way of forcing the OS to "see" process B as being inside of process C
and then shut it down, deallocate its memory, close its pipes, etc...

Any ideas?

I'll be willing to PayPal $10 to anyone who completely figures this out
for me :)

Feb 27 '06 #3
kmkz wrote:
Lets say my script A executes two other scripts, B and C. B is a Python
file compiled into an exe and uses the regular black box. C, however,
is a C++ program that I did not write, and have no access to (besides
executing it. ie, i don't have its source). I would like to fork off
the process B and C from A, but make B and C invisible and unable to be
shut down by the user. This way, they have to kill process A.
Unfortunately, this brings me back to the problem I posted above: how
to make the subprocesses dependant on its parent process. Since I have
no access to the C++ program's source I need to come up with a better
way of forcing the OS to "see" process B as being inside of process C
and then shut it down, deallocate its memory, close its pipes, etc...

Any ideas?
Again, the atexit and signal modules will be your friend.
I'll be willing to PayPal $10 to anyone who completely figures this out
for me :)


1) I wouldn't want to spoil the fun.
2) My time writing code costs much more than that. :-)

--
Steve Juranich
Tucson, AZ
USA

Feb 27 '06 #4
I didn't mean that you'd have to write it for me, I meant that if what
you said works (atexit, signal) I will paypal you $10 for your generous
contribution to my project.

Feb 27 '06 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

21 posts views Thread by John Lin | last post: by
6 posts views Thread by Bob Swerdlow | last post: by
12 posts views Thread by Jerry Sievers | last post: by
3 posts views Thread by pattanawadee | last post: by
reply views Thread by Darren Mart via DotNetMonster.com | last post: by
7 posts views Thread by Joe | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.