From c1c0d670e1b2b5b2cb587d3f0e7a28e3b09a7c80 Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Mon, 6 Mar 2023 22:37:45 +0100 Subject: [PATCH] - added init script for rrdcached --- rrdcached.init | 78 +++++++++++++++++++++++++++++++++++++++++++++ rrdcached.sysconfig | 8 +++++ rrdtool.spec | 31 ++++++++++++++++-- 3 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 rrdcached.init create mode 100644 rrdcached.sysconfig diff --git a/rrdcached.init b/rrdcached.init new file mode 100644 index 0000000..3cf1417 --- /dev/null +++ b/rrdcached.init @@ -0,0 +1,78 @@ +#!/bin/sh +# +# rrdcached This shell script takes care of starting and stopping +# the rrdcached. +# +# chkconfig: 2345 19 81 +# description: It comes by night and sucks the vital essence from your computers. +# + +# Source function library +. /etc/rc.d/init.d/functions + +[ -f /etc/sysconfig/rrdcached ] && . /etc/sysconfig/rrdcached + +# Set defaults if not defined in service config file +RRDCACHED_WRITE_TIMEOUT=${RRDCACHED_WRITE_TIMEOUT:-300} +RRDCACHED_WRITE_DELAY=${RRDCACHED_WRITE_DELAY:-180} +RRDCACHED_WRITE_THREADS=${RRDCACHED_WRITE_THREADS:-4} +RRDCACHED_PID_FILE="/var/run/rrdcached.pid" +RRDCACHED_SOCKET="/var/run/rrdcached.sock" + +start() { + # Check if the service is already running? + if [ -f /var/lock/subsys/rrdcached ]; then + msg_already_running "rrdcached" + return + fi + + msg_starting "rrdcached" + daemon /usr/bin/rrdcached -m 0660 -w ${RRDCACHED_WRITE_TIMEOUT} -z ${RRDCACHED_WRITE_DELAY} -t ${RRDCACHED_WRITE_THREADS} -p ${RRDCACHED_PID_FILE} -l ${RRDCACHED_SOCKET} + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rrdcached +} + +stop() { + if [ ! -f /var/lock/subsys/rrdcached ]; then + msg_not_running "rrdcached" + return + fi + + # Stop daemons. + msg_stopping "rrdcached" + killproc /usr/sbin/rrdcached + rm -f /var/lock/subsys/rrdcached +} + +condrestart() { + if [ ! -f /var/lock/subsys/rrdcached ]; then + msg_not_running "rrdcached" + RETVAL=$1 + return + fi + + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + status) + status rrdcached + RETVAL=$? + ;; +*) + msg_usage "$0 {start|stop|restart|status}" + exit 3 + ;; +esac +exit $RETVAL diff --git a/rrdcached.sysconfig b/rrdcached.sysconfig new file mode 100644 index 0000000..a359b53 --- /dev/null +++ b/rrdcached.sysconfig @@ -0,0 +1,8 @@ +# Write interval in seconds +#RRDCACHED_WRITE_TIMEOUT=300 + +# Maximum write delay in seconds +#RRDCACHED_WRITE_DELAY=180 + +# Number of write threads +#RRDCACHED_WRITE_THREADS=4 diff --git a/rrdtool.spec b/rrdtool.spec index d67c280..7d47bc1 100644 --- a/rrdtool.spec +++ b/rrdtool.spec @@ -28,11 +28,13 @@ Summary(ru.UTF-8): RRDtool - база данных с "циклическим о Summary(uk.UTF-8): RRDtool - це система зберігання та показу серійних даних Name: rrdtool Version: 1.8.0 -Release: 1 +Release: 0.1 License: GPL v2+ + FLOSS exception Group: Applications/Databases Source0: https://github.com/oetiker/rrdtool-1.x/releases/download/v%{version}/%{name}-%{version}.tar.gz # Source0-md5: 852754364cbd0703a099b5eb32932851 +Source1: rrdcached.init +Source2: rrdcached.sysconfig Patch0: %{name}-tcl-path.patch Patch1: groff.patch URL: http://oss.oetiker.ch/rrdtool/ @@ -357,7 +359,7 @@ install -d perl-docs/html %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} +install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig},%{_examplesdir}/%{name}-%{version}} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT \ @@ -366,6 +368,9 @@ install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} examplesdir=%{_examplesdir}/%{name}-%{version} \ RUBYARCHDIR=$RPM_BUILD_ROOT%{ruby_archdir} +install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/rrdcached +install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/rrdcached + %{__rm} $RPM_BUILD_ROOT%{_libdir}/librrd.la %{__rm} -r $RPM_BUILD_ROOT%{_docdir} @@ -383,6 +388,26 @@ rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig +%pre cached +%groupadd -g 347 rrdcached +%useradd -u 347 -d /usr/share/empty -g rrdcached -c "rrdcached daemon user" rrdcached + +%post cached +/sbin/chkconfig --add rrdcached +%service rrdcached restart + +%postun cached +if [ "$1" = "0" ]; then + %userremove rrdcached + %groupremove rrdcached +fi + +%preun cached +if [ "$1" = "0" ]; then + %service rrdcached stop + /sbin/chkconfig --del rrdcached +fi + %files %defattr(644,root,root,755) %doc CHANGES CONTRIBUTORS COPYRIGHT NEWS THREADS TODO @@ -430,6 +455,8 @@ rm -rf $RPM_BUILD_ROOT %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/librrd.so +%attr(754,root,root) /etc/rc.d/init.d/rrdcached +%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rrdcached %{_includedir}/rrd*.h %{_pkgconfigdir}/librrd.pc %{_mandir}/man3/librrd.3* -- 2.46.0