1#! /usr/bin/perl -w 2# 980904 Harlan Stenn - created 3 4# vvv CHANGE THESE vvv 5 6$ps = "/bin/ps x |"; 7 8$ntp_conf = "/etc/ntp.conf"; 9$ntpd = "/usr/local/bin/xntpd"; 10$ntpdate = "/usr/local/bin/ntpdate -b -s 10.0.0.1 10.0.0.2"; 11 12# ^^^ CHANGE THESE ^^^ 13 14{ 15 if (0) 16 { 17 } 18 elsif ($ARGV[0] eq "start") 19 { 20 @pidlist = pidlist($ntpd); 21 if (defined(@pidlist)) 22 { 23 warn "NTP is already running\n"; 24 } 25 else 26 { 27 if ( -f $ntp_conf && -x $ntpd ) 28 { 29 system ($ntpdate); 30 system ($ntpd." -c ".$ntp_conf); 31 } 32 } 33 } 34 elsif ($ARGV[0] eq "stop") 35 { 36 @pidlist = pidlist($ntpd); 37 kill 'TERM', @pidlist if (scalar(@pidlist) > 0); 38 } 39 else 40 { 41 die "Usage: $0 {start,stop}\n"; 42 } 43} 44 45sub pidlist ($) 46 { 47 my ($target) = @_; 48 my ($qt) = quotemeta($target); 49 my @pids; 50 51 open(PS, $ps) || die "Can't run ps: $!\n"; 52 while (<PS>) 53 { 54 chomp; 55 next unless (/$qt/); 56 print "Got <$_>\n"; 57 if (/^\s*(\d+)\s+/) 58 { 59 push @pids, $1; 60 } 61 } 62 close(PS); 63 return @pids; 64 } 65