From 11d3c3b815e462e7351fea6aa7b7a242241199f4 Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Wed, 14 Oct 2015 09:30:26 +0000 Subject: [PATCH] - fixed asyncd init script, added asyncd sysconfig --- munin-asyncd.init | 30 ++++++++++++++++++++++++++++-- munin-asyncd.sysconfig | 8 ++++++++ munin.spec | 17 +++++++---------- 3 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 munin-asyncd.sysconfig diff --git a/munin-asyncd.init b/munin-asyncd.init index b7a89d1..5340110 100755 --- a/munin-asyncd.init +++ b/munin-asyncd.init @@ -23,6 +23,14 @@ # Source function library. . /etc/rc.d/init.d/functions +# Get config +. /etc/sysconfig/munin-asyncd + +# Set defaults in case they're not defined in config +MUNIN_NODE_HOST=${MUNIN_NODE_HOST:-localhost} +MUNIN_NODE_PORT=${MUNIN_NODE_HOST:-4949} +MUNIN_ASYNCD_SHUTDOWN_TIMEOUT=${MUNIN_ASYNCD_SHUTDOWN_TIMEOUT:-15} + start() { # Check if the service is already running? if [ -f /var/lock/subsys/munin-asyncd ]; then @@ -31,7 +39,7 @@ start() { fi msg_starting "munin-asyncd" - daemon /usr/sbin/munin-asyncd + daemon --fork /usr/sbin/munin-asyncd --host ${MUNIN_NODE_HOST}:${MUNIN_NODE_PORT} RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/munin-asyncd } @@ -43,7 +51,25 @@ stop() { fi msg_stopping "munin-asyncd" - killproc munin-asyncd + busy + # We can't kill by process name, asyncd is changing it dynamically + # so we simply send TERM to all asyncd processes + for ppid in $(pgrep "^munin-asyncd "); do + kill -TERM ${ppid} + done + timeout=0 + while pgrep "^munin-asyncd " 1>/dev/null 2>&1; do + # If timeout was reached send kill signal and break loop + if [ $timeout -ge $MUNIN_ASYNCD_SHUTDOWN_TIMEOUT ]; then + for ppid in $(pgrep "^munin-asyncd "); do + kill -KILL ${ppid} + done + break + fi + sleep 1 + timeout=$((timeout+1)) + done + ok rm -f /var/lock/subsys/munin-asyncd } diff --git a/munin-asyncd.sysconfig b/munin-asyncd.sysconfig new file mode 100644 index 0000000..dc7cb58 --- /dev/null +++ b/munin-asyncd.sysconfig @@ -0,0 +1,8 @@ +# Munin node IP address or hostname (default is localhost) +#MUNIN_NODE_HOST="localhost" + +# Munin node port (default is 4949) +#MUNIN_NODE_PORT="4949" + +# maximum time (in seconds) to wait for munin-asyncd to stop +MUNIN_ASYNCD_SHUTDOWN_TIMEOUT="15" diff --git a/munin.spec b/munin.spec index 8fe90b5..4286364 100644 --- a/munin.spec +++ b/munin.spec @@ -1,7 +1,3 @@ -# TODO -# - R: perl* should be autogenerated? -# - add plugins-java package and proper BRs -# # Condtional build: %bcond_with sybase # add Sybase support to munin-node @@ -23,6 +19,7 @@ Source5: %{name}-node.logrotate Source6: %{name}-lighttpd.conf Source8: %{name}-httpd.conf Source11: %{name}-asyncd.init +Source12: %{name}-asyncd.sysconfig Patch0: %{name}-Makefile.patch Patch1: %{name}-plugins.patch Patch2: %{name}-templatedir.patch @@ -136,7 +133,7 @@ Munin. %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,cron.d,logrotate.d},%{_bindir},%{_sbindir}} \ +install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,cron.d,logrotate.d,sysconfig},%{_bindir},%{_sbindir}} \ $RPM_BUILD_ROOT/var/log/archive/munin \ $RPM_BUILD_ROOT%{_webapps}/%{_webapp} @@ -148,8 +145,10 @@ install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,cron.d,logrotate.d},%{_bindir},%{_s # move asyncd daemon do sbin %{__mv} $RPM_BUILD_ROOT{%{_datadir}/munin,%{_sbindir}}/munin-asyncd -install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/munin-asyncd install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/munin-node +install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/munin-asyncd +install %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/munin-asyncd + cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/munin cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/munin cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/munin-node @@ -158,6 +157,7 @@ cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf + cp -p dists/tarball/plugins.conf $RPM_BUILD_ROOT%{_sysconfdir} ln -sf %{_sysconfdir}/plugins.conf $RPM_BUILD_ROOT%{_sysconfdir}/plugin-conf.d/munin-node @@ -311,6 +311,7 @@ fi %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.conf %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugin-conf.d/munin-node %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/munin-node +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/munin-asyncd %attr(754,root,root) /etc/rc.d/init.d/munin-asyncd %attr(754,root,root) /etc/rc.d/init.d/munin-node %attr(755,root,root) %{_bindir}/munindoc @@ -337,7 +338,3 @@ fi %{_mandir}/man3/Munin::Node* %{_mandir}/man3/Munin::Plugin* %{_mandir}/man5/munin-node.conf* - -#%files plugins-java -#%defattr(644,root,root,755) -#%{_datadir}/munin/munin-jmx-plugins.jar -- 2.37.3