Let me recap and see if I understand you right.
You have a non-Perl application, which we will call the "parent".
From "parent", you call a Perl program, which we will call "A".
From "A", you call another process, called "child". From "child",
you call yet another process, which we call "grand child".
Now, "child" communicates with "parent". But now I am getting
confused. You say that you do not want to lose the communication
between "child" and "parent", however, you also want to kill "child".
So, I am not certain which one you want to get rid of.
You also say you lose the communication if you exec "grand child",
which isn't strange because an exec replaces
the current process, it being "child". So, you use system
and that works fine, but it leaves running processes behind. Well,
of course that "works fine". Now you are not getting
rid of "child", just as I said in my previous post. Because you are
doing system, "child" will wait till "grand child"
is finished before executing the next statement, which happens
to be the exit. So.... "child" doesn't go away until "grand child"
is finished. But isn't that exactly what you want? Because if "child"
goes away your communication is broken anyway....
-- Abigail
| [reply] [d/l] [select] |
Let me see if I understand this:
- You have an application that isn't Perl.
- You run from this application some Perl script.
- From the Perl script, you launch another Perl script.
- The parent and child scripts talk to one another.
- At some point, you wish to be able to launch a grandchild script.
- This grandchild script may or may not need to be able to talk to the child script.
*blinks* I'm going to say right now that this is starting to sound like a poorly-designed application. Without seeing your code, I'm going to bet that you are calling the grandchild script when you probably should have it as a module that you use in the child script. I'm guessing that you have these grandchildren scripts to add functionality, depending on a series of possible outcomes.
It sounds like you may need to explore modules and redesign the way you're doing things.
(Please note that you have given very little information about what you're doing and how it's implemented. If you know about modules and are using them, then I apologize for any insult you may feel I have given you.) | [reply] |