Changes of Revision 3
[-] | Changed | icinga-mod_gearman.changes |
x 1
2 ------------------------------------------------------------------- 3 +Sat Jan 29 14:42:54 UTC 2011 - cs@linux-administrator.com 4 + 5 +- update to release 0.9 6 +- split package in to library, server and worker 7 + 8 +------------------------------------------------------------------- 9 Thu Jan 13 10:25:25 UTC 2011 - cs@linux-administrator.com 10 11 - initial package build of version 0.8 12 |
||
[-] | Changed | icinga-mod_gearman.spec ^ |
124 1
2 %define monitor icinga 3 %define pkgname mod_gearman 4 Name: %{monitor}-%{pkgname} 5 -Version: 0.8 6 +Version: 0.9 7 Release: 1 8 Group: Application/System 9 License: GPLv3 10 Url: http://labs.consol.de/lang/de/nagios/mod-gearman/ 11 Summary: Distributed active Icinga/Nagios checks 12 Source0: http://labs.consol.de/wp-content/uploads/2010/09/%{pkgname}-%{version}.tar.bz2 13 +Source1: mod_gearman-worker-suse.init 14 +Source2: mod_gearman_worker.sysconfig 15 Patch0: mod_gearman-init-worker.patch 16 BuildRoot: %{_tmppath}/%{name}-%{version}-root 17 -BuildRequires: gcc-c++ gearmand-devel >= 0.14 ncurses-devel 18 +BuildRequires: gcc-c++ gearmand-devel >= 0.14 ncurses-devel sed 19 BuildRequires: %{monitor} 20 21 %description 22
23 The counterpart is one or more worker clients for the checks itself. 24 They can be bound to host and servicegroups. 25 26 +%package server 27 +Group: Application/System 28 +Summary: The server part of mod_gearman 29 +Requires: %{monitor}-%{pkgname} 30 +Requires: %{monitor} 31 + 32 +%description server 33 + 34 + 35 +%package worker 36 +Group: Application/System 37 +Summary: The worker part of mod_gearman 38 +Requires: %{monitor}-%{pkgname} 39 +Requires(pre): pwdutils 40 + 41 +%description server 42 + 43 + 44 %prep 45 %setup -n %{pkgname}-%{version} 46 %patch0 47
48 49 %install 50 %__make DESTDIR=%{buildroot} install 51 +%if 0%{?suse_version} 52 +%__install -D -m0755 %{S:1} %{buildroot}/etc/init.d/mod_gearman_worker 53 +%__install -D -m0644 %{S:2} %{buildroot}/var/adm/fillup-templates/sysconfig.mod_gearman_worker 54 +sed -i s@"%USERID%"@"%{monitor}"@ %{buildroot}/var/adm/fillup-templates/sysconfig.mod_gearman_worker 55 +%endif 56 +%__install -D -m0644 %{buildroot}%{_datadir}/mod_gearman/standalone_worker.conf %{buildroot}%{_sysconfdir}/mod_gearman_worker.conf 57 58 %clean 59 rm -rf %{buildroot} 60 61 -%preun 62 +%preun worker 63 %stop_on_removal 64 65 -%postun 66 +%preun server 67 +%stop_on_removal 68 + 69 +%postun worker 70 +%insserv_cleanup 71 + 72 +%postun server 73 %insserv_cleanup 74 75 +%post worker 76 +%if 0%{?suse_version} 77 +%fillup_and_insserv 78 +%endif 79 + 80 +%pre worker 81 +%if 0%{?suse_version} 82 +getent group %{monitor} >/dev/null || groupadd -r %{monitor} 83 +getent passwd %{monitor} >/dev/null || useradd -r -g %{monitor} -d %{_datadir}/mod_gearman -s /sbin/nologin -c "mod_gearman_worker" %{monitor} 84 +exit 0 85 +%endif 86 + 87 %files 88 %defattr(-,root,root) 89 %doc Changes COPYING README README.html THANKS TODO 90 +%dir %{_libdir}/mod_gearman 91 +%{_libdir}/mod_gearman/mod_gearman.so 92 + 93 +%files worker 94 +%defattr(-,root,root) 95 +%config(noreplace) %{_sysconfdir}/mod_gearman_worker.conf 96 +%dir %{_libdir}/mod_gearman 97 +%{_libdir}/mod_gearman/mod_gearman.so 98 %{_sysconfdir}/init.d/mod_gearman_worker 99 -%{_bindir}/check_gearman 100 -%{_bindir}/gearman_top 101 %{_bindir}/mod_gearman_worker 102 -%{_bindir}/send_gearman 103 -%{_bindir}/send_multi 104 +%dir %{_datadir}/mod_gearman 105 +%{_datadir}/mod_gearman/standalone_worker.conf 106 +%if 0%{?suse_version} 107 +/var/adm/fillup-templates/sysconfig.mod_gearman_worker 108 +%endif 109 + 110 +%files server 111 +%defattr(-,root,root) 112 %dir %{_libdir}/mod_gearman 113 %{_libdir}/mod_gearman/mod_gearman.o 114 -%{_libdir}/mod_gearman/mod_gearman.so 115 +%{_bindir}/gearman_top 116 +%{_bindir}/check_gearman 117 +%{_bindir}/send_gearman 118 +%{_bindir}/send_multi 119 %dir %{_datadir}/mod_gearman 120 %{_datadir}/mod_gearman/shared.conf 121 -%{_datadir}/mod_gearman/standalone_worker.conf 122 123 %changelog 124 |
||
Changed | mod_gearman-0.9.tar.bz2 ^ | |
[+] | Added | mod_gearman-worker-suse.init ^ |
@@ -0,0 +1,203 @@ +#!/bin/sh +# +# Copyright (C) 2011 Carsten Schoene, Linux Administrator Networks +# +# This library is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or (at +# your option) any later version. +# +# This library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, +# USA. +# +# /etc/init.d/mod_gearman_worker +# and its symbolic link +# /(usr/)sbin/rcmod_gearman_worker +# +# +### BEGIN INIT INFO +# Provides: mod_gearman_worker +# Required-Start: $syslog $remote_fs +# Should-Start: $time +# Required-Stop: $syslog $remote_fs +# Should-Stop: $null +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: mod_gearman_worker daemon +# Description: Start mod_gearman_worker +### END INIT INFO +# + +# Check for missing binaries (stale symlinks should not happen) +# Note: Special treatment of stop for LSB conformance +mod_gearman_worker_BIN=/usr/bin/mod_gearman_worker +PIDFILE=/var/run/mod_gearman_worker.pid +CONFIG=/etc/mod_gearman_worker.conf +test -x $mod_gearman_worker_BIN || { echo "$mod_gearman_worker_BIN not installed"; + if [ "$1" = "stop" ]; then exit 0; + else exit 5; fi; } + +# Check for existence of needed config file and read it +mod_gearman_worker_CONFIG=/etc/sysconfig/mod_gearman_worker +test -r $mod_gearman_worker_CONFIG || { echo "$mod_gearman_worker_CONFIG not existing"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } + +# Read config +. $mod_gearman_worker_CONFIG + +# Source LSB init functions +# providing start_daemon, killproc, pidofproc, +# log_success_msg, log_failure_msg and log_warning_msg. +# This is currently not used by UnitedLinux based distributions and +# not needed for init scripts for UnitedLinux only. If it is used, +# the functions from rc.status should not be sourced or used. +#. /lib/lsb/init-functions + +# Shell functions sourced from /etc/rc.status: +# rc_check check and set local and overall rc status +# rc_status check and set local and overall rc status +# rc_status -v be verbose in local rc status and clear it afterwards +# rc_status -v -r ditto and clear both the local and overall rc status +# rc_status -s display "skipped" and exit with status 3 +# rc_status -u display "unused" and exit with status 3 +# rc_failed set local and overall rc status to failed +# rc_failed <num> set local and overall rc status to <num> +# rc_reset clear both the local and overall rc status +# rc_exit exit appropriate to overall rc status +# rc_active checks whether a service is activated by symlinks +. /etc/rc.status + +# Reset status of this service +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - generic or unspecified error +# 2 - invalid or excess argument(s) +# 3 - unimplemented feature (e.g. "reload") +# 4 - user had insufficient privileges +# 5 - program is not installed +# 6 - program is not configured +# 7 - program is not running +# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) +# +# Note that starting an already running service, stopping +# or restarting a not-running service as well as the restart +# with force-reload (in case signaling is not supported) are +# considered a success. + +case "$1" in + start) + echo -n "Starting mod_gearman_worker " + ## Start daemon with startproc(8). If this fails + ## the return value is set appropriately by startproc. + /sbin/startproc -u ${USERID} $mod_gearman_worker_BIN -- -d --config=${CONFIG} --pidfile=${PIDFILE} + + # Remember status and be verbose + rc_status -v + ;; + stop) + echo -n "Shutting down mod_gearman_worker " + ## Stop daemon with killproc(8) and if this fails + ## killproc sets the return value according to LSB. + + /sbin/killproc -TERM $mod_gearman_worker_BIN -p ${PIDFILE} + + # Remember status and be verbose + rc_status -v + ;; + try-restart|condrestart) + ## Do a restart only if the service was active before. + ## Note: try-restart is now part of LSB (as of 1.9). + ## RH has a similar command named condrestart. + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + rc_reset # Not running is not a failure. + fi + # Remember status and be quiet + rc_status + ;; + restart) + ## Stop the service and regardless of whether it was + ## running or not, start it again. + $0 stop + $0 start + + # Remember status and be quiet + rc_status + ;; + force-reload) + ## Signal the daemon to reload its config. Most daemons + ## do this on signal 1 (SIGHUP). + ## If it does not support it, restart the service if it + ## is running. + + echo -n "Reload service mod_gearman_worker " + ## if it supports it: + /sbin/killproc -HUP $mod_gearman_worker_BIN + #touch /var/run/mod_gearman_worker.pid + rc_status -v + + ## Otherwise: + #$0 try-restart + #rc_status + ;; + reload) + ## Like force-reload, but if daemon does not support + ## signaling, do nothing (!) + + # If it supports signaling: + echo -n "Reload service mod_gearman_worker " + /sbin/killproc -HUP $mod_gearman_worker_BIN + #touch /var/run/mod_gearman_worker.pid + rc_status -v + + ## Otherwise if it does not support reload: + #rc_failed 3 + #rc_status -v + ;; + status) + echo -n "Checking for service mod_gearman_worker " + ## Check status with checkproc(8), if process is running + ## checkproc will return with exit status 0. + + # Return value is slightly different for the status command: + # 0 - service up and running + # 1 - service dead, but /var/run/ pid file exists + # 2 - service dead, but /var/lock/ lock file exists + # 3 - service not running (unused) + # 4 - service status unknown :-( + # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.) + + # NOTE: checkproc returns LSB compliant status values. + /sbin/checkproc $mod_gearman_worker_BIN + # NOTE: rc_status knows that we called this init script with + # "status" option and adapts its messages accordingly. + rc_status -v + ;; + probe) + ## Optional: Probe for the necessity of a reload, print out the + ## argument to this init script which is required for a reload. + ## Note: probe is not (yet) part of LSB (as of 1.9) + + test /etc/mod_gearman_worker.conf -nt ${PIDFILE} && echo reload + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" | ||
[+] | Added | mod_gearman_worker.sysconfig ^ |
@@ -0,0 +1,9 @@ +# +# CONFIG +CONFIG=/etc/mod_gearman-worker.conf + +# PIDFILE Path +PIDFILE=/var/run/mod_gearman_worker.pid + +# UserID of worker process +USERID=%USERID% |