]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ntp/files/ntp.init
ship /etc/init.d/ntp
[dsa-puppet.git] / modules / ntp / files / ntp.init
1 #!/bin/sh
2
3 ### BEGIN INIT INFO
4 # Provides:        ntp
5 # Required-Start:  $network $remote_fs $syslog
6 # Required-Stop:   $network $remote_fs $syslog
7 # Default-Start:   2 3 4 5
8 # Default-Stop: 
9 # Short-Description: Start NTP daemon
10 ### END INIT INFO
11
12 PATH=/sbin:/bin:/usr/sbin:/usr/bin
13
14 . /lib/lsb/init-functions
15
16 DAEMON=/usr/sbin/ntpd
17 PIDFILE=/var/run/ntpd.pid
18
19 test -x $DAEMON || exit 5
20
21 if [ -r /etc/default/ntp ]; then
22         . /etc/default/ntp
23 fi
24
25 if [ -e /var/lib/ntp/ntp.conf.dhcp ]; then
26         NTPD_OPTS="$NTPD_OPTS -c /var/lib/ntp/ntp.conf.dhcp"
27 fi
28
29
30 LOCKFILE=/var/lock/ntpdate
31
32 lock_ntpdate() {
33         if [ -x /usr/bin/lockfile-create ]; then
34                 lockfile-create $LOCKFILE
35                 lockfile-touch $LOCKFILE &
36                 LOCKTOUCHPID="$!"
37         fi
38 }
39
40 unlock_ntpdate() {
41         if [ -x /usr/bin/lockfile-create ] ; then
42                 kill $LOCKTOUCHPID
43                 lockfile-remove $LOCKFILE
44         fi
45 }
46
47 RUNASUSER=ntp
48 UGID=$(getent passwd $RUNASUSER | cut -f 3,4 -d:) || true
49 if test "$(uname -s)" = "Linux"; then
50         NTPD_OPTS="$NTPD_OPTS -u $UGID"
51 fi
52
53 case $1 in
54         start)
55                 log_daemon_msg "Starting NTP server" "ntpd"
56                 if [ -z "$UGID" ]; then
57                         log_failure_msg "user \"$RUNASUSER\" does not exist"
58                         exit 1
59                 fi
60                 lock_ntpdate
61                 start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON -- -p $PIDFILE $NTPD_OPTS
62                 status=$?
63                 unlock_ntpdate
64                 log_end_msg $status
65                 ;;
66         stop)
67                 log_daemon_msg "Stopping NTP server" "ntpd"
68                 start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
69                 log_end_msg $?
70                 rm -f $PIDFILE
71                 ;;
72         restart|force-reload)
73                 $0 stop && sleep 2 && $0 start
74                 ;;
75         try-restart)
76                 if $0 status >/dev/null; then
77                         $0 restart
78                 else
79                         exit 0
80                 fi
81                 ;;
82         reload)
83                 exit 3
84                 ;;
85         status)
86                 status_of_proc $DAEMON "NTP server"
87                 ;;
88         *)
89                 echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
90                 exit 2
91                 ;;
92 esac