another silly programming question.
whats the easiest way to see if a parent process is still alive?
I could find out the ppid with getppid and send it a signal. If the signal
is ESRCH, the it doesn't exist. Is there a better way?
The signal solution might get confused if the parent is threading. I know
ps shows up different pids for threads so I might get nobbled if the
calling thread died. Another major problem is that there is a small chance
the parent would die and another process would be created with the same
PID.
All this boils down to solving a shared memory problem. I talk to a child
process through shared memory and the child needs to know when it has to
die. It should die when the parent does and clean up the shared memory.
Unfortunately, the parent doesn't know when it's going to die, it happens
unexpectangly so I can't just call a "quit" function. So I want the child
to keep an eye on it's parent. If the parent dies, the child kills itself.
Any insights on how this should be done properably?
Mel
ps This is in aid of making a certain "ugly" hack prettier :-)
----Dumb Quote----
C makes it easy to shoot yourself in the foot.
C++ makes it harder, but when you do, you blow away your whole leg
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!