nixpkgs/pkgs/servers/server-scripts/generic/functions
Armijn Hemel 304f3fbe9d some small changes...probably the way it is done now (declaring the
dependencies, such as "networking" in Nix expressions) is not entirely
right, at least, trying to start them from for example this SSH script is
not the right way. A cleaner solution is being developed :)

svn path=/nixpkgs/trunk/; revision=5034
2006-03-14 13:44:28 +00:00

79 lines
1.3 KiB
Bash

#! @bash@/bin/sh -e
## Generic service scripts for NixOS, which provide
## * functions to write state to files (/var/run/nix-services)
## * functions to read state from file (/var/run/nix-services)
## * sanity checking functions
STATEDIR=/var/run/nix-services
RCDIR=/etc/rc.d/
## resolve $deps to real start/stop scripts first
start_deps() {
for i in $deps; do
$i start
RETVAL=$?
if test $RETVAL != 0; then
exit $RETVAL
fi
done
}
start_softdeps() {
for i in $softdeps; do
echo $i
$i start
RETVAL=$?
if test $RETVAL != 0; then
continue
fi
done
}
start() {
# are we already running?
# if so, exit with code 0
if test -a $STATDIR/$prog; then
exit 0
fi
# if not, continue
# launch all hard dependencies
#start_deps
# launch all preferred dependencies
echo "softdeps" $softdeps
start_softdeps
# launch our own program
startService
# if successful, then register
register
}
stop() {
echo "stopping $prog"
# are we running? If so, then stop, otherwise, do nothing...
if ! test -a $STATEDIR/$prog; then
exit 0
fi
# stop our own program
stopService
unregister
}
register() {
touch $STATEDIR/$prog
}
unregister() {
rm $STATEDIR/$prog
}
status() {
# are we running? If so, report
if test -a $STATEDIR/$prog; then
echo "running"
else
echo "stopped"
fi
}