Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Per IPC

by sourav007 (Initiate)
on Jul 11, 2013 at 12:55 UTC ( [id://1043716]=perlquestion: print w/replies, xml ) Need Help??

sourav007 has asked for the wisdom of the Perl Monks concerning the following question:

Thanks for the reply FIFO means named PIPE mechanism you are telling to implement? Yes I am facing the problem with buffer for that the child process is hanging after some time. Please can you help me how to flush the buffer when it is filled up as the child process needs to continuously write to the pipe handle. As I am having two separate scripts and I am to trying initiate the execution of one script(child process) from another script(parent process) using pipe mechanism such as open($fh, '-|', "./monitor.pl") here monitor.pl is the child process such that both of them executes asynchronously and at the same time as well as the output of the commands placed inside the while loop of the child process are written to the pipe handle continuously for that reason the buffer is getting filled up. So please suggest me the mechanism and appropriate location to flush the buffer such that the child process never hangs up as the buffer fills up.

Replies are listed 'Best First'.
Re: Per IPC
by The_Dj (Beadle) on Jul 12, 2013 at 03:46 UTC
    I think you've mixed your terms but if I understand:
    you want to run a child process that sends data to the parent process.
    They should run at the same time
    But the child stops writing output after a while.


    If I understand, then:
    Does the parent need the output of the child?
    If not, use fork and exec.
    If it does, the child is probably hanging when its output buffer is full. Try using a FIFO.
      Thanks for the reply FIFO means named PIPE mechanism you are telling to implement? Yes I am facing the problem with buffer for that the child process is hanging after some time. Please can you help me how to flush the buffer when it is filled up as the child process needs to continuously write to the pipe handle. As I am having two separate scripts and I am to trying initiate the execution of one script(child process) from another script(parent process) using pipe mechanism such as open($fh, '-|', "./monitor.pl") here monitor.pl is the child process such that both of them executes asynchronously and at the same time as well as the output of the commands placed inside the while loop of the child process are written to the pipe handle continuously for that reason the buffer is getting filled up. So please suggest me the mechanism and appropriate location to flush the buffer such that the child process never hangs up as the buffer fills up.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1043716]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (7)
As of 2024-04-18 09:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found