#!/bin/sh add_failed() { if [ -n "$failed" ]; then failed="$failed $1" else failed="$1" fi } check_service() { service=$1 state=$2 if [ -z "$state" ]; then state="on" fi if [ -n "`/sbin/chkconfig --list $service | cut -f 3`" ]; then check_cmd="/sbin/chkconfig --level 3 $service" else check_cmd='[[ `/sbin/chkconfig --list $service | cut -f 2` = "on" ]]' fi echo "Ensuring service $service is $state" eval $check_cmd status=$? if [ "$state" = "on" ]; then req_state=0 else req_state=1 fi if [ $status -eq $req_state ]; then return 0 fi /sbin/chkconfig $service $state eval $check_cmd if [ $? -eq $req_state ]; then return 0 else add_failed $service return 1 fi } check_service portmap on check_service klogin on check_service kshell on check_service ftp on check_service telnet on check_service eklogin on # check_service lpd off check_service rhnsd off check_service ntpd on if ! rpm -q kernel-pcmcia-cs >/dev/null 2>&1; then echo "Latop services not installed: deactivating apmd" /sbin/chkconfig --del apmd >/dev/null 2>&1 fi /etc/rc.d/init.d/xinetd status | grep running >/dev/null 2>&1 && \ /etc/rc.d/init.d/xinetd reload if [ -n "$failed" ]; then echo "The following services could not be set as desired:" 1>&2 for service in $failed; do echo " $service" 1>&2 done exit 1 else exit 0 fi