PageRenderTime 30ms CodeModel.GetById 24ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/ntp/scripts/rc2/local.ntpd

https://bitbucket.org/freebsd/freebsd-head/
Perl | 64 lines | 53 code | 7 blank | 4 comment | 6 complexity | f7263980745d121405c1d71958308414 MD5 | raw file
 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  }