SHA256
1
0
forked from pool/rrdtool
rrdtool/rrdcached.init
Denisart Benjamin 786c95fae1 Accepting request 201898 from home:jsjhb:branches:devel:languages:python
- add rrdtools-cached package including systemd service
- add full documentation (txt, html)
- clean up the ruby header workaround using site install

OBS-URL: https://build.opensuse.org/request/show/201898
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/rrdtool?expand=0&rev=43
2013-10-03 14:16:18 +00:00

134 lines
3.3 KiB
Bash

#!/bin/sh
#
# /etc/init.d/rrdcached
# and its symbolic link
# /(usr/)sbin/rcrrdcached
#
### BEGIN INIT INFO
# Provides: rrdcached
# Required-Start: $local_fs $syslog $remote_fs
# Should-Start: $time
# Required-Stop: $local_fs $syslog $remote_fs
# Should-Stop: $null
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Start and stop rrdtool caching daemon
# Description: rrdcached is a caching daemon to aggregate
# updates to rrd files
### END INIT INFO
RRDCACHED_BIN='/usr/bin/rrdcached'
test -x $RRDCACHED_BIN || { echo "$RRDCACHED_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# Check for existence of needed config file and read it
RRDCACHED_CONFIG='/etc/sysconfig/rrdcached'
test -r $RRDCACHED_CONFIG || { echo "$RRDCACHED_CONFIG not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
RRDCACHED_PID='/var/lib/rrdtool/rrdcached/rrdcached.pid'
# Read config
. $RRDCACHED_CONFIG
# Source LSB init functions
. /etc/rc.status
# Reset status of this service
rc_reset
function check_and_create_dir(){
local DIR=$1
test -d "$DIR" || mkdir -p "$DIR"
}
case "$1" in
start)
echo -n "Starting rrdcached "
check_and_create_dir "$(dirname $RRDCACHED_PID)"
chown $RRDCACHED_USER:$RRDCACHED_GROUP "$(dirname $RRDCACHED_PID)"
case "$RRDCACHED_ADDRESS" in
^unix:)
SOCKETDIR=$(dirname ${RRDCACHED_ADDRESS/unix:/})
check_and_create_dir "$SOCKETDIR"
chgrp $RRDCACHED_GROUP "$SOCKETDIR"
;;
esac
case "$RRDCACHED_CHROOT_DIR" in
/tmp)
echo "Warning: starting with chroot dir $RRDCACHED_CHROOT_DIR" >&2
;;
*)
check_and_create_dir "$RRDCACHED_CHROOT_DIR"
chown $RRDCACHED_USER:$RRDCACHED_GROUP "$RRDCACHED_CHROOT_DIR"
;;
esac
/sbin/startproc -u $RRDCACHED_USER $RRDCACHED_BIN \
-s $RRDCACHED_GROUP \
-b "$RRDCACHED_CHROOT_DIR" \
-p "$RRDCACHED_PID" \
-l $RRDCACHED_ADDRESS \
-m $RRDCACHED_SOCKET_MASK \
-w $RRDCACHED_DISKWRITE \
-z $RRDCACHED_DELAY \
-t $RRDCACHED_WRITE_THREADS \
$RRDCACHED_OPTIONS
# workaround for wrong socket ownership and permission after stArt
case "$RRDCACHED_ADDRESS" in
^unix:)
SOCKET=${RRDCACHED_ADDRESS/unix:/}
chown $RRDCACHED_USER:$RRDCACHED_GROUP "$SOCKET"
chmod $RRDCACHED_SOCKET_MASK "$SOCKET"
;;
esac
rc_status -v
;;
stop)
echo -n "Shutting down rrdcached "
/sbin/killproc -p $RRDCACHED_PID -t 10 $RRDCACHED_BIN
rc_status -v
;;
try-restart|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
rc_status
;;
restart)
$0 stop
$0 start
rc_status
;;
force-reload)
echo -n "Reload service rrdcached "
/sbin/killproc -p $RRDCACHED_PID -HUP $RRDCACHED_BIN
rc_status -v
;;
reload)
echo -n "Reload service rrdcached "
/sbin/killproc -p $RRDCACHED_PID -HUP $RRDCACHED_BIN
rc_status -v
;;
status)
echo -n "Checking for service rrdcached "
/sbin/checkproc $RRDCACHED_BIN
rc_status -v
;;
probe)
test $RRDCACHED_CONFIG -nt $RRDCACHED_PID && echo reload
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 1
;;
esac
rc_exit