A simplified example of the current code might be:
while(1){
# a bunch of stuff
$command = some calculated command;
$args = some calculated args;
$proc{"$command $args"} = Proc::Background->new("$command $args 1>
+&2 >some.log") unless $proc{"$command $args"}->alive;
# a bunch of stuff
}
In this example, $command is being spawned off and must bring up a new process every time. I'd rather just be able to, say, repeatedly write "$args 1>&2 >some.log\n" to a pipe and then have the new line fork off a process from a $command that has already been initialized -- with something analogous to "->alive" to tell me when it is ok to fork off another similar $command.
| [reply] [d/l] |
Proc::Background has a wait function that you can use to get the status code of the child process, however...
It sounds to me that Proc::Background isn't really suited for what you need. From reading the docs, it just seems like a wrapper for starting/killing/waiting on processes, so that's basically just fork, wait, etc. If you need to communicate with a running process, I think perlipc is better suited to your needs.
| [reply] |