#!/bin/sh # # install-symlinks.sh - shell script for installing symbolic lynks # for system startup # # Copyright (C) 1999-2000 Riccardo Facchetti # # Modified for use with Bacula 15 November 2001, Kern Sibbald # # # Theory of operation: # this script attempts to detect which runlevels are appropriate for # apcupsd startup and consequently installs the OS startup symbolic links # in the correct locations. # # For example, suse distribution uses sysvinit so the scripts will do: # 1. searches for init scripts directory # 2. try to detect on which runlevels is appropriate to run apcupsd # (presumably all the runlevels at which also syslogd runs) # 3. installs the symbolic links into the previously detected runlevels action=$1 dist=$2 if [ -z "$action" -o -z "$dist" ] then echo "Missing parameter on command line." exit 1 fi case $action in install) echo "Generic symlinks installation..." case $dist in suse) if [ -d /etc/rc.d ] then initrcd="/etc/rc.d" elif [ -d /sbin/init.d ] then initrcd="/sbin/init.d" else echo "Can not find init scripts directory." exit 1 fi for runlevel in 1 2 3 4 5 do if [ -L $initrcd/rc$runlevel.d/S*syslog ] then echo " Installing runlevel $runlevel..." ln -sf $initrcd/apcupsd $initrcd/rc$runlevel.d/K20apcupsd ln -sf $initrcd/apcupsd $initrcd/rc$runlevel.d/S20apcupsd fi done ;; *) echo " relying on $dist-specific Makefile for symlink installation" ;; esac ;; uninstall) echo "Genering symlinks uninstallation..." case $dist in suse) if [ -d /etc/rc.d ] then initrcd="/etc/rc.d" elif [ -d /sbin/init.d ] then initrcd="/sbin/init.d" else echo "Can not detect init scripts directory." exit 1 fi for runlevel in 1 2 3 4 5 do if [ -L $initrcd/rc$runlevel.d/S20apcupsd ] then echo " Removing runlevel $runlevel..." rm -f $initrcd/rc$runlevel.d/K20apcupsd rm -f $initrcd/rc$runlevel.d/S20apcupsd fi done ;; *) echo " relying on $dist-specific Makefile for symlink uninstallation" ;; esac ;; *) echo "Wrong parameter $action." exit 1 esac exit 0