forked from pool/rrdtool
786c95fae1
- 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
134 lines
3.3 KiB
Bash
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
|