#!/usr/bin/perl -w # # This script displays some information about a running portupgrade process. # # Copyright (C) 2006-2007 Lars Engels # Use and distribute under BSD license. # use strict; my $runs = 0; my $portupgrade_pid; my @ps_results = qx|ps -ao "pid command"| or die("Cannot get process states!\n"); foreach (@ps_results) { if (/ruby\d{2}\:\ portupgrade\:/) { $runs = 1; my @portupgrade = split(); $portupgrade_pid = $portupgrade[0]; last; } } die("portupgrade is not running!\n") unless $runs; # Get second line from ps my (undef,$pu_data) = qx|ps -p $portupgrade_pid -o "lstart etime command"| or die ("Cannot get process states!\n"); # split at whitespaces my @pu_data = split(/\s+/,$pu_data); print "Portupgrade status:\n\n"; print "\tStart time:\t$pu_data[1] $pu_data[2] $pu_data[4] $pu_data[3] - ($pu_data[5])\n"; print "\tUpdating port:\t$pu_data[8] - $pu_data[9]\n\n"; exit 0;