system/uptimed: Added (An uptime daemon).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Graham Orange 2014-04-11 01:18:22 +07:00 committed by Willy Sudiarto Raharjo
parent 96c3b4238e
commit d4e8c61faf
6 changed files with 244 additions and 0 deletions

35
system/uptimed/README Normal file
View file

@ -0,0 +1,35 @@
uptimed (An uptime deamon to log your best uptimes)
Stores your best uptime statistics in "/var/spool/uptimed/records"
The 'uprecords' command will display your best uptime results.
Note: See below on how to launch uptimed automatically.
Additional configuration via "/etc/uptimed.conf"
(See "/etc/uptimed.conf-dist")
The uptimed daemon runs in the background and regularly stores the following
data to "/var/spool/uptimed/records";
"<Uptime in seconds>:<Boot up in unixtime>:<System kernel name and release>"
The boot up value is used as a unique identifier.
See "uprecords -?" for additional record display options.
The "uprecords" file can be copied as "uprecords.cgi" to your CGI directory,
and will render Content-type head information and HTML tabs as necessary.
(See "INSTALL.cgi" in the extracted source for more information.)
To have the daemon launch automatically at boot time,
1) Set the rc.uptimed file as executable;
chmod 755 /etc/rc.d/rc.uptimed
2) Add an entry in rc.local with;
if [ -x /etc/rc.d/rc.uptimed ]; then
/etc/rc.d/rc.uptimed start
fi
Q: Why are my records not saved between reboots? I can see the current uptime
info with the 'uprecords' command.
A: The uptimed daemon was possibly not running to regularly save the data to the
"/var/spool/uptimed/records" file. See above on how to automatically start
the daemon, and confirm that the "/var/spool/uptimed" directory exists
and is writable.

14
system/uptimed/doinst.sh Normal file
View file

@ -0,0 +1,14 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config etc/uptimed.conf-dist.new

59
system/uptimed/rc.uptimed Normal file
View file

@ -0,0 +1,59 @@
#!/bin/bash
#
# run control file for uptimed
RETVAL=0
NAME="uptimed"
UPTIMED="/usr/sbin/uptimed"
PIDFILE="/var/run/uptimed"
START="$UPTIMED"
if [ -e $PIDFILE ]; then
STOP="kill $( cat $PIDFILE )"
else
STOP="killall $UPTIMED"
fi
CREATEBOOTID="$UPTIMED -b"
start()
{
echo -n $"Starting $NAME:"
$START
RETVAL=$?
echo
}
stop()
{
echo -n $"Stopping $NAME:"
$STOP
RETVAL=$?
echo
}
createbootid()
{
$CREATEBOOTID
RETVAL=$?
$POST
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
createbootid)
createbootid
;;
*)
echo $"Usage: $0 {start|stop|restart|createbootid}"
RETVAL=1
esac
exit $RETVAL

19
system/uptimed/slack-desc Normal file
View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
uptimed: uptimed (An uptime daemon)
uptimed:
uptimed: Uptimed is an uptime daemon (logs your best uptimes).
uptimed:
uptimed:
uptimed:
uptimed: Homepage: http://podgorny.cz/moin/Uptimed
uptimed:
uptimed:
uptimed:
uptimed:

View file

@ -0,0 +1,107 @@
#!/bin/sh -e
# Graham Orange v0.17 2014-04-09
# Copyright 2014 Graham Orange, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=uptimed
VERSION=${VERSION:-0.3.17}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
DOCS="AUTHORS COPYING CREDITS ChangeLog INSTALL* NEWS README TODO"
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-static \
--mandir=/usr/man \
--build=$ARCH-slackware-linux
gmake
gmake install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/etc/rc.d
install -m 644 $CWD/rc.uptimed $PKG/etc/rc.d/rc.uptimed
mv $PKG/etc/uptimed.conf-dist $PKG/etc/uptimed.conf-dist.new
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="uptimed"
VERSION="0.3.17"
HOMEPAGE="http://podgorny.cz/moin/Uptimed"
DOWNLOAD="http://podgorny.cz/uptimed/releases/uptimed-0.3.17.tar.bz2"
MD5SUM="528b62c33454b33537c3bf2366977bdb"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Graham Orange"
EMAIL="gorange40@gmail.com"