in reply to Converting Proc::Background Tasks To Server

I'm not exactly sure what you are asking. You mentioned a problem with command initialization time, but then you're asking for a suggestion on CPAN modules.

What exactly are you spawning with the Proc::Background? A shell? Then you want to send more commands to it? I'm curious why you wouldn't just fork a new Proc::Background process with a new command. Perhaps if you gave a solid example of what you are trying to accomplish?

Perhaps I'm just not understanding your question...
  • Comment on Re: Converting Proc::Background Tasks To Server

Replies are listed 'Best First'.
Re^2: Converting Proc::Background Tasks To Server
by jabowery (Beadle) on Dec 21, 2014 at 08:11 UTC
    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.
      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.