home *** CD-ROM | disk | FTP | other *** search
- #!/usr/local/bin/perl
-
- ($loadavg, $pid, $debug) = @ARGV;
- $running = 1;
-
- while (kill 0, $pid) {
- `/usr/ucb/uptime` =~ /load average:\s+([\d.]+)/
- || die "Can't run uptime: $!\n";;
-
- if ($1 > $loadavg) {
- kill 'STOP', $pid;
- if ($running) {
- print STDERR "stopping at $1\r\n" if $debug;
- $0 = "pmeter (stopped $pid at $loadavg)";
- $running = 0;
- }
- }
- else {
- kill 'CONT', $pid;
- if (!$running) {
- print STDERR "starting at $1\r\n" if $debug;
- $0 = "pmeter (started $pid at $loadavg)";
- $running = 1;
- }
- }
- sleep 120;
- }
-