summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c29cae7)
raw | patch | inline | side by side (parent: c29cae7)
author | Sebastian Harl <sh@tokkee.org> | |
Wed, 27 Apr 2011 07:08:49 +0000 (09:08 +0200) | ||
committer | Sebastian Harl <sh@tokkee.org> | |
Wed, 27 Apr 2011 07:08:49 +0000 (09:08 +0200) |
The daemon is disabled by default.
debian/changelog | patch | blob | history | |
debian/control | patch | blob | history | |
debian/copyright | patch | blob | history | |
debian/pnp4nagios-bin.pnp_gearman_worker.default | [new file with mode: 0644] | patch | blob |
debian/pnp4nagios-bin.pnp_gearman_worker.init | [new file with mode: 0644] | patch | blob |
debian/rules | patch | blob | history |
diff --git a/debian/changelog b/debian/changelog
index ea12c32a998667528f6fd6545dc72a4be82a8b83..90e8d5b44ab3334a1e9cc09e39fc5ee6ecb598eb 100644 (file)
--- a/debian/changelog
+++ b/debian/changelog
* debian/rules, debian/pnp4nagios-bin.install:
- Do not install npcd.8 using dh_installman; this is done by the upstream
Makefile now.
+ * debian/pnp4nagios-bin.pnp_gearman_worker.default,
+ pnp4nagios-bin.pnp_gearman_worker.init:
+ - Added init script for the PNP4Nagios Gearman worker daemon.
+ - The daemon is disabled by default.
- -- Sebastian Harl <tokkee@debian.org> Tue, 26 Apr 2011 14:46:18 +0200
+ -- Sebastian Harl <tokkee@debian.org> Wed, 27 Apr 2011 09:05:48 +0200
pnp4nagios (0.6.11-2) unstable; urgency=low
diff --git a/debian/control b/debian/control
index eddedc816ff04fbea24f62f0c9bc2c009e0db285..962bd806bd4c589bf35e91b45ddde8ea6f33496e 100644 (file)
--- a/debian/control
+++ b/debian/control
Architecture: any
Depends: librrds-perl, adduser, ${shlibs:Depends}, ${misc:Depends}
Recommends: pnp4nagios-web, nagios3 | icinga
-Suggests: rrdcached
+Suggests: rrdcached, perl, libgearman-client-perl, libcrypt-rijndael-perl
Description: Nagios addon to create graphs from performance data (binaries)
PNP is a graphing tool for Nagios that analyzes performance data provided by
plugins and stores them automatically into Round Robin Databases (RRD). It
diff --git a/debian/copyright b/debian/copyright
index 2e27ac9c6ccb08e94848aaa10b4c7757696d0a9e..20c9e79c4a825b81d577dbfe3541085517fb2cc2 100644 (file)
--- a/debian/copyright
+++ b/debian/copyright
License: BSD-2-clause
Files:
- debian/pnp4nagios-bin.init
+ debian/pnp4nagios-bin.npcd.init
Copyright:
2007 Javier Fernandez-Sanguino <jfs@debian.org>
2009 Sven Velt <sven@velt.de>
License: BSD-2-clause
+Files:
+ debian/pnp4nagios-bin.pnp_gearman_worker.init
+Copyright:
+ 2007, Javier Fernandez-Sanguino <jfs@debian.org>
+ 2011, Sebastian Harl <tokkee@debian.org>
+License: BSD-2-clause
+
Files:
debian/po/de.po
Copyright:
diff --git a/debian/pnp4nagios-bin.pnp_gearman_worker.default b/debian/pnp4nagios-bin.pnp_gearman_worker.default
--- /dev/null
@@ -0,0 +1,11 @@
+# Default settings for the pnp_gearman_worker init script.
+
+# Should the gearman worker daemon be started? ("yes" to enable)
+RUN="no"
+
+# Additional options that are passed to the daemon.
+DAEMON_OPTS="--config=/etc/pnp4nagios/process_perfdata.cfg"
+
+# Change to this user before starting the daemon.
+# Note: the daemon refuses to start as root.
+USER=nagios
diff --git a/debian/pnp4nagios-bin.pnp_gearman_worker.init b/debian/pnp4nagios-bin.pnp_gearman_worker.init
--- /dev/null
@@ -0,0 +1,210 @@
+#!/bin/sh
+#
+# init.d script for the Gearman worker daemon of PNP4Nagios
+#
+# Based on an example script for NPCD of Javier Fernandez-Sanguino
+# Copyright (c) 2007 Javier Fernandez-Sanguino <jfs@debian.org>
+# Copyright (c) 2011 Sebastian Harl <tokkee@debian.org>
+#
+### BEGIN INIT INFO
+# Provides: pnp_gearman_worker
+# Required-Start: $network $local_fs $remote_fs
+# Required-Stop: $network $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: PNP4Nagios Gearman worker daemon
+# Description: Processing of Nagios' perf data in distributed setups
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+
+DAEMON=/usr/lib/pnp4nagios/libexec/process_perfdata.pl
+NAME=pnp_gearman_worker
+DESC="PNP4Nagios Gearman worker daemon"
+
+PIDFILE=/var/run/pnp4nagios/$NAME.pid
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+# Default options, these can be overriden by the information
+# at /etc/default/$NAME
+DAEMON_OPTS=""
+DIETIME=10
+STARTTIME=2
+USER=nagios
+
+if [ -f /etc/default/pnp_gearman_worker ] ; then
+ . /etc/default/pnp_gearman_worker
+fi
+
+if [ "x$RUN" != "xyes" ] ; then
+ echo "$NAME has been disabled in /etc/default/pnp_gearman_worker."
+ exit 0
+fi
+
+set -e
+
+# Check if a given process pid's cmdline matches a given name
+running_pid() {
+ pid=$1
+ name=$2
+ [ -z "$pid" ] && return 1
+ [ ! -d /proc/$pid ] && return 1
+ cmd=`cat /proc/$pid/cmdline | tr "\000" "\n" | head -n 1 | cut -d : -f 1`
+ # Is this the expected server
+ [ "$cmd" != "$name" ] && return 1
+ return 0
+}
+
+# Check if the process is running looking at /proc
+# (works for all users)
+running() {
+ # No pidfile, probably no daemon present
+ [ ! -f "$PIDFILE" ] && return 1
+ pid=`cat $PIDFILE`
+ running_pid "$pid" $DAEMON \
+ || running_pid "$pid" "/usr/bin/perl" || return 1
+ return 0
+}
+
+# Start the process using the wrapper
+start_server() {
+ if ! perl -MGearman::Worker -e '1;' > /dev/null 2>&1 \
+ || ! perl -MMIME::Base64 -e '1;' > /dev/null 2>&1 \
+ || ! perl -MCrypt::Rijndael -e '1;' > /dev/null 2>&1; then
+ echo "$NAME requires the Gearman::Worker, MIME::Base64 and" >&2
+ echo "Crypt::Rijndael Perl modules. Make sure that the packages" >&2
+ echo "perl, libgearman-client-perl and libcrypt-rijndael-perl" >&2
+ echo "are installed." >&2
+ exit 1
+ fi
+
+ if [ -d /var/run/pnp4nagios ]; then
+ chmod 755 /var/run/pnp4nagios
+ chown nagios.nagios /var/run/pnp4nagios
+ else
+ install -d -m 755 -o nagios -g nagios /var/run/pnp4nagios
+ fi
+
+ start_opts="--start --quiet --oknodo --pidfile $PIDFILE"
+ if [ -n "$USER" ]; then
+ start_opts="$start_opts --chuid $USER"
+ fi
+ start-stop-daemon $start_opts --exec $DAEMON -- \
+ --pidfile=$PIDFILE --gearman --daemon $DAEMON_OPTS
+ errcode=$?
+ return $errcode
+}
+
+# Stop the process using the wrapper
+stop_server() {
+ killproc -p $PIDFILE $DAEMON
+ errcode=$?
+ return $errcode
+}
+
+# Force the process to die killing it manually
+force_stop() {
+ [ ! -e "$PIDFILE" ] && return
+ if running ; then
+ kill -15 $pid
+ # Is it really dead?
+ sleep "$DIETIME"s
+ if running ; then
+ kill -9 $pid
+ sleep "$DIETIME"s
+ if running ; then
+ echo "Cannot kill $NAME (pid=$pid)!"
+ exit 1
+ fi
+ fi
+ fi
+ rm -f $PIDFILE
+}
+
+case "$1" in
+ start)
+ log_daemon_msg "Starting $DESC" "$NAME"
+ # Check if it's running first
+ if running ; then
+ log_progress_msg "apparently already running"
+ log_end_msg 0
+ exit 0
+ fi
+ if start_server ; then
+ # NOTE: Some servers might die some time after they start,
+ # this code will detect this issue if STARTTIME is set
+ # to a reasonable value
+ [ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time
+ if running ; then
+ # It's ok, the server started and is running
+ log_end_msg 0
+ else
+ # It is not running after we did start
+ log_end_msg 1
+ fi
+ else
+ # Either we could not start it
+ log_end_msg 1
+ fi
+ ;;
+ stop)
+ log_daemon_msg "Stopping $DESC" "$NAME"
+ if running ; then
+ # Only stop the server if we see it running
+ errcode=0
+ stop_server || errcode=$?
+ log_end_msg $errcode
+ else
+ # If it's not running don't do anything
+ log_progress_msg "apparently not running"
+ log_end_msg 0
+ exit 0
+ fi
+ ;;
+ force-stop)
+ # First try to stop gracefully the program
+ $0 stop
+ if running; then
+ # If it's still running try to kill it more forcefully
+ log_daemon_msg "Stopping (force) $DESC" "$NAME"
+ errcode=0
+ force_stop || errcode=$?
+ log_end_msg $errcode
+ fi
+ ;;
+ restart|force-reload)
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ errcode=0
+ stop_server || errcode=$?
+ # Wait some sensible amount, some server need this
+ [ -n "$DIETIME" ] && sleep $DIETIME
+ start_server || errcode=$?
+ [ -n "$STARTTIME" ] && sleep $STARTTIME
+ running || errcode=$?
+ log_end_msg $errcode
+ ;;
+ status)
+
+ log_daemon_msg "Checking status of $DESC" "$NAME"
+ if running ; then
+ log_progress_msg "running"
+ log_end_msg 0
+ else
+ log_progress_msg "apparently not running"
+ log_end_msg 1
+ exit 1
+ fi
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/debian/rules b/debian/rules
index 18526be703c6733a766efdd72f88cf22358f0b1e..9f9611aa186511ef772dc2ff2b68e6af34dd8967 100755 (executable)
--- a/debian/rules
+++ b/debian/rules
dh_installexamples -a
dh_installdebconf -a
dh_installinit -ppnp4nagios-bin --name=npcd
+ dh_installinit -ppnp4nagios-bin --name=pnp_gearman_worker
dh_installman -a
dh_link -a
dh_strip -a