[lemonldap-ng] 10/37: Add systemd files for lemonldap-ng-fastcgi-server

Xavier Guimard xguimard-guest at moszumanska.debian.org
Sat Mar 5 13:39:45 UTC 2016


This is an automated email from the git hooks/post-receive script.

xguimard-guest pushed a commit to branch master
in repository lemonldap-ng.

commit 6316d85185542caef2e8bbf385557196e2a1254f
Author: Xavier Guimard <x.guimard at free.fr>
Date:   Sat Mar 5 07:44:21 2016 +0100

    Add systemd files for lemonldap-ng-fastcgi-server
---
 debian/control                              |   1 +
 debian/lemonldap-ng-fastcgi-server.default  |  15 ++++
 debian/lemonldap-ng-fastcgi-server.init     | 132 ++++++++++++++++++++++++++++
 debian/lemonldap-ng-fastcgi-server.install  |   2 +
 debian/lemonldap-ng-fastcgi-server.manpages |   1 +
 debian/lemonldap-ng-fastcgi-server.postinst |  17 ++++
 debian/lemonldap-ng-fastcgi-server.service  |  16 ++++
 debian/lemonldap-ng-fastcgi-server.upstart  |  14 +++
 debian/rules                                |   2 +-
 9 files changed, 199 insertions(+), 1 deletion(-)

diff --git a/debian/control b/debian/control
index 88ce10e..fa68ade 100644
--- a/debian/control
+++ b/debian/control
@@ -4,6 +4,7 @@ Uploaders: Xavier Guimard <x.guimard at free.fr>
 Section: perl
 Priority: extra
 Build-Depends: debhelper (>= 9),
+               dh-systemd,
                po-debconf
 Build-Depends-Indep: libapache-session-perl,
                      libauthcas-perl,
diff --git a/debian/lemonldap-ng-fastcgi-server.default b/debian/lemonldap-ng-fastcgi-server.default
new file mode 100644
index 0000000..39841a9
--- /dev/null
+++ b/debian/lemonldap-ng-fastcgi-server.default
@@ -0,0 +1,15 @@
+# Number of process (default: 7)
+#NPROC = 7
+
+# Unix socket to listen to
+SOCKET=/var/run/llng-fastcgi-server/llng-fastcgi.sock
+
+# Pid file
+PID=/var/run/llng-fastcgi-server/llng-fastcgi-server.pid
+
+# User and GROUP
+USER=www-data
+GROUP=www-data
+
+# Custom functions file
+#CUSTOM_FUNCTIONS_FILE=/var/lib/lemonldap-ng/myfile.pm
diff --git a/debian/lemonldap-ng-fastcgi-server.init b/debian/lemonldap-ng-fastcgi-server.init
new file mode 100755
index 0000000..77c0d55
--- /dev/null
+++ b/debian/lemonldap-ng-fastcgi-server.init
@@ -0,0 +1,132 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides:	     lemonldap-ng-fastcgi-server
+# Required-Start:    $local_fs $remote_fs $network $syslog $named
+# Required-Stop:     $local_fs $remote_fs $network $syslog $named
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: starts the Lemonldap::NG FastCGI server
+# Description:       starts Lemonldap::NG FastCGI server using start-stop-daemon
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/llng-fastcgi-server
+NAME=llng-fastcgi-server
+DESC=llng-fastcgi-server
+
+# Include llng-fastcgi-server defaults if available
+if [ -r /etc/default/lemonldap-ng-fastcgi-server ]; then
+	. /etc/default/lemonldap-ng-fastcgi-server
+fi
+
+STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}"
+
+test -x $DAEMON || exit 0
+
+. /lib/init/vars.sh
+. /lib/lsb/init-functions
+
+# Try to extract llng-fastcgi-server pidfile
+if [ -z "$PID" ]; then
+	PID=/var/run/llng-fastcgi-server/llng-fastcgi-server.pid
+fi
+if [ -z "$SOCKET" ]; then
+	SOCKET=/var/run/llng-fastcgi-server/llng-fastcgi.sock
+fi
+
+DAEMON_OPTS="-p ${PID} -u ${USER} -g ${GROUP} -s ${SOCKET}"
+
+if [ -z "$CUSTOM_FUNCTIONS_FILE" ]; then
+	DAEMON_OPTS="$DAEMON_OPTS -f ${CUSTOM_FUNCTIONS_FILE}"
+fi
+
+start_server() {
+	# Start the daemon/service
+	#
+	# Returns:
+	#   0 if daemon has been started
+	#   1 if daemon was already running
+	#   2 if daemon could not be started
+	start-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --test > /dev/null \
+		|| return 1
+	start-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON -- \
+		$DAEMON_OPTS 2>/dev/null \
+		|| return 2
+}
+
+stop_server() {
+	# Stops the daemon/service
+	#
+	# Return
+	#   0 if daemon has been stopped
+	#   1 if daemon was already stopped
+	#   2 if daemon could not be stopped
+	#   other if a failure occurred
+	start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $NAME
+	RETVAL="$?"
+	sleep 1
+	return "$RETVAL"
+}
+
+reload_server() {
+	# Function that sends a SIGHUP to the daemon/service
+	start-stop-daemon --stop --signal HUP --quiet --pidfile $PID --name $NAME
+	return 0
+}
+
+case "$1" in
+	start)
+		log_daemon_msg "Starting $DESC" "$NAME"
+		start_server
+		case "$?" in
+			0|1) log_end_msg 0 ;;
+			2)   log_end_msg 1 ;;
+		esac
+		;;
+	stop)
+		log_daemon_msg "Stopping $DESC" "$NAME"
+		stop_server
+		case "$?" in
+			0|1) log_end_msg 0 ;;
+			2)   log_end_msg 1 ;;
+		esac
+		;;
+	restart)
+		log_daemon_msg "Restarting $DESC" "$NAME"
+
+		# Check configuration before stopping llng-fastcgi-server
+		if ! test_config; then
+			log_end_msg 1 # Configuration error
+			exit $?
+		fi
+
+		stop_server
+		case "$?" in
+			0|1)
+				start_server
+				case "$?" in
+					0) log_end_msg 0 ;;
+					1) log_end_msg 1 ;; # Old process is still running
+					*) log_end_msg 1 ;; # Failed to start
+				esac
+				;;
+			*)
+				# Failed to stop
+				log_end_msg 1
+				;;
+		esac
+		;;
+	reload|force-reload)
+		log_daemon_msg "Reloading $DESC configuration" "$NAME"
+		reload_server
+		log_end_msg $?
+		;;
+	status)
+		status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $?
+		;;
+	*)
+		echo "Usage: $NAME {start|stop|restart|reload|force-reload|status}" >&2
+		exit 3
+		;;
+esac
diff --git a/debian/lemonldap-ng-fastcgi-server.install b/debian/lemonldap-ng-fastcgi-server.install
new file mode 100644
index 0000000..517c88d
--- /dev/null
+++ b/debian/lemonldap-ng-fastcgi-server.install
@@ -0,0 +1,2 @@
+/usr/sbin/llng-fastcgi-server
+/etc/lemonldap-ng/nginx*
diff --git a/debian/lemonldap-ng-fastcgi-server.manpages b/debian/lemonldap-ng-fastcgi-server.manpages
new file mode 100644
index 0000000..3b5c01b
--- /dev/null
+++ b/debian/lemonldap-ng-fastcgi-server.manpages
@@ -0,0 +1 @@
+fastcgi-server/man/llng-fastcgi-server.1p
diff --git a/debian/lemonldap-ng-fastcgi-server.postinst b/debian/lemonldap-ng-fastcgi-server.postinst
new file mode 100644
index 0000000..cc7aaf1
--- /dev/null
+++ b/debian/lemonldap-ng-fastcgi-server.postinst
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+USER="www-data"
+GROUP="www-data"
+CHOWN="/bin/chown"
+ID="/usr/bin/id"
+
+if ! test -d /var/run/llng-fastcgi-server; then
+  rm -rf /var/run/llng-fastcgi-server
+  mkdir /var/run/llng-fastcgi-server
+fi
+$CHOWN $USER:$GROUP /var/run/llng-fastcgi-server
+
+#DEBHELPER#
+exit 0
diff --git a/debian/lemonldap-ng-fastcgi-server.service b/debian/lemonldap-ng-fastcgi-server.service
new file mode 100644
index 0000000..bc33665
--- /dev/null
+++ b/debian/lemonldap-ng-fastcgi-server.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=FastCGI server for Lemonldap::NG websso system
+After=network.target
+
+[Service]
+Type=forking
+EnvironmentFile=/etc/default/lemonldap-ng-fastcgi-server
+PIDFile=/var/run/llng-fastcgi-server/llng-fastcgi-server.pid
+ExecStart=/usr/sbin/llng-fastcgi-server
+ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile ${PID}
+KillMode=mixed
+
+[Install]
+Alias=llng-fastcgi-server.service
+WantedBy=multi-user.target
+
diff --git a/debian/lemonldap-ng-fastcgi-server.upstart b/debian/lemonldap-ng-fastcgi-server.upstart
new file mode 100644
index 0000000..1326a48
--- /dev/null
+++ b/debian/lemonldap-ng-fastcgi-server.upstart
@@ -0,0 +1,14 @@
+description "FastCGI server for Lemonldap::NG websso system"
+
+start on filesystem and static-network-up
+stop on runlevel [016]
+
+expect fork
+respawn
+
+pre-start script
+        [ -x /usr/sbin/llng-fastcgi-server ] || { stop; exit 0; }
+end script              
+
+exec /usr/sbin/llng-fastcgi-server -u www-data -g www-data -s /var/run/llng-fastcgi-server/llng-fastcgi.sock -p /var/run/llng-fastcgi-server/llng-fastcgi-server.pid
+
diff --git a/debian/rules b/debian/rules
index 8d608a0..54a10ff 100755
--- a/debian/rules
+++ b/debian/rules
@@ -19,7 +19,7 @@ CAPTCHADIR=$(LMVARDIR)/captcha
 CAPTCHAOUTPUTDIR=$(LMVARDIR)/portal/captcha_output
 
 %:
-	dh $@
+	dh $@ --with systemd
 
 override_dh_auto_configure:
 	cd lemonldap-ng-portal/example/skins/dark/ && rm -f redirect.tpl && ln -s ../common/redirect.tpl

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/lemonldap-ng.git



More information about the Pkg-perl-cvs-commits mailing list