Here's the sample code I'm trying...  In essence I would expect to see
The following output:

Running vmstat
Running sar
Waiting...      (at this point a long wait while sar and vmstat finish)
Done!


Instead I am seeing:
Running vmstat
Running sar  (The long wait is here)
Waiting...
Done!


In watching the file sizes, I can see both files are created at the
Same time, but sar does not produce any output in its file until
Vmstat finishes.

-Tony

#!/usr/bin/perl -w

use strict;

print "Running vmstat\n";
defined(my $vmstat_pid = fork) or die "Cannot fork: $!";
unless ($vmstat_pid) {
  exec "vmstat 5 5 > /log/monitor/delta/vmstat.out";
  die "cannot exec vmstat: $!";
}
print "Running sar\n";
defined(my $sar_pid = fork) or die "Cannot fork: $!";
unless ($sar_pid) {
  exec "sar 5 5 > /log/monitor/delta/sar.out";
  die "cannot exec date: $!";
}
print "Waiting...\n";
waitpid($vmstat_pid, 0);
waitpid($sar_pid, 0);
print "done!\n";

-----Original Message-----
From: Wiggins d Anconia [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 03, 2003 1:31 PM
To: Akens, Anthony; Tom Kinzer; [EMAIL PROTECTED]
Subject: RE: Timing several processes


I was going to suggest POE as well, 'til I saw that little word 'simple'
:-)...

Have you read:

perldoc perlipc
perldoc -f fork
perldoc -f wait
perldoc -f waitpid

Of course POE is what makes keeping track of all those spun off
processes trivial, but learning it is I will admit not trivial...

http://danconia.org

> I already have some ideas for how I want to build the page, how
> to parse the data I will generate, etc.
> 
> As I said, I've looked at some of the other tools out there,
> and want to stick to some simple perl code to parse out the 
> information and return the results.
> 
> The only bit I'm not sure of is how to tell if all forked processes
> have completed before moving on.
> 
> 
> -Tony
> 
> -----Original Message-----
> From: Tom Kinzer [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, December 03, 2003 12:35 PM
> To: [EMAIL PROTECTED]
> Subject: RE: Timing several processes
> 
> 
>  http://poe.perl.org
> 
> Maybe this would be a good job for POE?
> 
> -Tom Kinzer
> 
> 
> -----Original Message-----
> From: Akens, Anthony [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, December 03, 2003 7:49 AM
> To: [EMAIL PROTECTED]
> Subject: Timing several processes
> 
> 
> Hi all!
> 
> I'm wanting to write a simple web-based tool to see the status of 
> several servers at a glance.  I know there are many solutions 
> existing, but I can't learn as much about perl by just using one of 
> those as I can by writing my own.  The first step I want to do is call

> a script from cron that runs several basic monitoring tools (sar, 
> vmstat, df, iostat, etc) and saves the output of each to a file. Then 
> I'd parse those files up, and write a summary file.
> 
> Easy enough.  And I could certainly do it with by calling the tools 
> one at a time.  However, I'd like to get roughly 1 minute of vmstat, 
> iostat, and sar output.... Simultaneously.  So I'm supposing I'd want 
> to fork off each process, and then when those are all done come back 
> and run a script that then parses those results out for the individual

> statistics I'm looking for.
> 
> I've never used fork before, and while it looks fairly straight 
> forward what I am not sure of is how to make sure all of those forked 
> processes have completed before moving on and parsing the files.
> 
> Any pointers?
> 
> Thanks in advance
> 
> -Tony
> 


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to