]> git.proxmox.com Git - pve-sheepdog.git/blob - debian/pve-sheepdog.sheepdog.init.d
693ab2380682737d103ddab925969e611b2edde1
[pve-sheepdog.git] / debian / pve-sheepdog.sheepdog.init.d
1 #!/bin/sh
2 ### BEGIN INIT INFO
3 # Provides: sheepdog
4 # Required-Start: $network $remote_fs $syslog
5 # Required-Stop: $network $remote_fs $syslog
6 # Default-Start: 2 3 4 5
7 # Default-Stop: 0 1 6
8 # Short-Description: Sheepdog server
9 # Description: Sheepdog server
10 ### END INIT INFO
11
12 # Author: Proxmox Support Team <support@proxmox.com>
13
14 # PATH should only include /usr/* if it runs after the mountnfs.sh script
15 PATH=/sbin:/usr/sbin:/bin:/usr/bin
16 DESC="Sheepdog Server" # Introduce a short description here
17 NAME=sheepdog # Introduce the short server's name here
18 DAEMON=/usr/sbin/sheep # Introduce the server's location here
19 DAEMON_ARGS="" # Arguments to run the daemon with
20 ##PIDFILE=/var/run/sheep.pid
21 SCRIPTNAME=/etc/init.d/$NAME
22
23 # Exit if the package is not installed
24 [ -x $DAEMON ] || exit 0
25
26 # Defaults
27 SHEEPDOG_PATH="/var/lib/sheepdog"
28
29 # Read configuration variable file if it is present
30 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
31
32 if [ "$START" != "yes" ]; then
33 exit 0
34 fi
35
36 . /lib/lsb/init-functions
37
38 status()
39 {
40 pid=$(pidof $1 2>/dev/null)
41 rtrn=$?
42 if [ $rtrn -ne 0 ]; then
43 echo "$1 is stopped"
44 else
45 echo "$1 (pid $pid) is running..."
46 fi
47 return $rtrn
48 }
49
50 #
51 # Function that starts the daemon/service
52 #
53 do_start()
54 {
55 mkdir -p /var/run
56
57 mkdir -p $SHEEPDOG_PATH
58
59 # Return
60 # 0 if daemon has been started
61 # 1 if daemon was already running
62 # 2 if daemon could not be started
63
64 status "$DAEMON" >/dev/null && return 1
65
66 start-stop-daemon --start --quiet --exec $DAEMON -- $DAEMON_ARGS $SHEEPDOG_PATH || return 2
67 }
68
69 #
70 # Function that stops the daemon/service
71 #
72 do_stop()
73 {
74 # Return
75 # 0 if daemon has been stopped
76 # 1 if daemon was already stopped
77 # 2 if daemon could not be stopped
78 # other if a failure occurred
79
80 status "$DAEMON" >/dev/null || return 1
81
82 start-stop-daemon --stop --retry=TERM/20/KILL/5 --exec $DAEMON
83 RETVAL="$?"
84 [ "$RETVAL" = 2 ] && return 2
85
86 # Many daemons don't delete their pidfiles when they exit.
87 # rm -f $PIDFILE
88
89 return "$RETVAL"
90 }
91
92 case "$1" in
93 start)
94 log_daemon_msg "Starting $DESC " "$NAME"
95 do_start
96 case "$?" in
97 0|1) log_end_msg 0 ;;
98 2) log_end_msg 1 ;;
99 esac
100 ;;
101 stop)
102 log_daemon_msg "Stopping $DESC" "$NAME"
103 do_stop
104 case "$?" in
105 0|1) log_end_msg 0 ;;
106 2) log_end_msg 1 ;;
107 esac
108 ;;
109 status)
110 status "$DAEMON" && exit 0 || exit $?
111 ;;
112 restart|force-reload)
113 log_daemon_msg "Restarting $DESC" "$NAME"
114 do_stop
115 case "$?" in
116 0|1)
117 do_start
118 case "$?" in
119 0) log_end_msg 0 ;;
120 1) log_end_msg 1 ;; # Old process is still running
121 *) log_end_msg 1 ;; # Failed to start
122 esac
123 ;;
124 *)
125 # Failed to stop
126 log_end_msg 1
127 ;;
128 esac
129 ;;
130 *)
131 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
132 exit 3
133 ;;
134 esac
135
136 :
137