1#! /bin/sh
2### BEGIN INIT INFO
3# Provides:          openxpkid
4# Required-Start:    $local_fs $webserver mysql
5# Required-Stop:     $local_fs $webserver mysql
6# Default-Start:     2 3 4 5
7# Default-Stop:      S 0 1 6
8# Short-Description: Start and stop the OpenXPKI backend daemon
9# Description:       Controls the OpenXPKI backend daemon
10### END INIT INFO
11
12# Author:	OpenXPKI Foundation <debian@openxpki.org>.
13#
14# Do NOT "set -e"
15
16# PATH should only include /usr/* if it runs after the mountnfs.sh script
17PATH=/usr/sbin:/usr/bin:/sbin:/bin
18DESC="OpenXPKI daemon"
19NAME=openxpki
20DAEMON=/usr/bin/openxpkictl
21PIDFILE=/var/run/openxpkid.pid
22SCRIPTNAME=/etc/init.d/openxpkid
23
24# Exit if the package is not installed
25[ -x "$DAEMON" ] || exit 0
26
27# Read configuration variable file if it is present
28[ -r /etc/default/$NAME ] && . /etc/default/$NAME
29
30# Load the VERBOSE setting and other rcS variables
31. /lib/init/vars.sh
32
33# Define LSB log_* functions.
34# Depend on lsb-base (>= 3.2-14) to ensure that this file is present.
35. /lib/lsb/init-functions
36
37#
38# Function that starts the daemon/service
39#
40# The openxpkictl script takes care of almost all issues and does child
41# cleanup, etc so please use it and do not use start-stop-daemon
42
43do_start()
44{
45    $DAEMON start
46}
47
48#
49# Function that stops the daemon/service
50#
51do_stop()
52{
53	# Return
54	#   0 if daemon has been stopped
55	#   1 if daemon was already stopped
56	#   2 if daemon could not be stopped
57    $DAEMON stop
58	RETVAL="$?"
59    return "$RETVAL"
60}
61
62#
63# Function that sends a SIGHUP to the daemon/service
64#
65do_reload() {
66	$DAEMON reload
67	return 0
68}
69
70case "$1" in
71  start)
72	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
73	do_start
74	case "$?" in
75		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
76		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
77	esac
78	;;
79  stop)
80	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
81	do_stop
82	case "$?" in
83		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
84		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
85	esac
86	;;
87  #reload|force-reload)
88	#
89	# If do_reload() is not implemented then leave this commented out
90	# and leave 'force-reload' as an alias for 'restart'.
91	#
92	#log_daemon_msg "Reloading $DESC" "$NAME"
93	#do_reload
94	#log_end_msg $?
95	#;;
96  restart|force-reload)
97	#
98	# If the "reload" option is implemented then remove the
99	# 'force-reload' alias
100	#
101	log_daemon_msg "Restarting $DESC" "$NAME"
102	do_stop
103	case "$?" in
104	  0|1)
105		do_start
106		case "$?" in
107			0) log_end_msg 0 ;;
108			1) log_end_msg 1 ;; # Old process is still running
109			*) log_end_msg 1 ;; # Failed to start
110		esac
111		;;
112	  *)
113	  	# Failed to stop
114		log_end_msg 1
115		;;
116	esac
117	;;
118  *)
119	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
120	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
121	exit 3
122	;;
123esac
124
125:
126