#!/bin/bash VERSION="0.5" RCUPDATE="/sbin/rc-update" RUNLEVELDIR="/etc/runlevels" RUNLEVELS="boot default nonetwork single" SRVDIR="/etc/init.d" list= add= del= basename=${0##*/} # # Usage # usage() { cat << EOF 1>&2 Chkconfig for Gentoo version ${VERSION}. This may be freely redistribuited undec the terms of the GNU Public License. usage: $basename --list [name] $basename --add $basename --del $basename [--level ] $basename --help EOF exit 1 } if [ "$#" -eq "0" ] then usage fi # # Gestione parametri # while [[ $1 = --* ]] || [[ $1 = -* ]]; do opt=$1 shift case $opt in --list) list=yes;; --add) add=yes;; --del) del=yes;; --level) level=yes;; --help) usage;; *) echo "Unknown option $opt"; usage; esac done if [ $level ] || [ "$x${2##*/}" = "xon" ] || [ "x${2##*/}" = "xoff" ] then levels="defaults" if [ $level ]; then levels=`echo $@ | cut -d " " -f-$(( $# - 2 ))`; fi service=`echo $@ | cut -d " " -f$(( $# - 1 ))` action=`echo $@ | cut -d " " -f$#-` if [ "$action" = "on" ] then action="add" else if [ "$action" = "off" ] then action="del" else usage; fi fi if [ -e ${SRVDIR}/${service} ] then $RCUPDATE $action $service $levels else echo "Service: ${service} doesn't exist." fi else service=${1##*/}; shift fi # # --add # if [ $add ];then if [ -e ${SRVDIR}/${service} ] then $RCUPDATE add $service default else echo "Service: ${service} doesn't exist." fi fi # # --del # if [ $del ];then if [ -e ${SRVDIR}/${service} ] then $RCUPDATE del $service default else echo "Service: ${service} doesn't exist." fi fi # # --list # if [ $list ]; then if [ $service ] && [ -e ${SRVDIR}/${service} ]; then SERVICES=$service else SERVICES=`cd ${SRVDIR} && grep -l "#\!/sbin/runscript" * |grep -v "\.sh"` fi for SRV in ${SERVICES} do echo -n "${SRV} " for RLVL in ${RUNLEVELS} do if [ -e ${RUNLEVELDIR}/${RLVL}/${SRV} ] then echo -n "${RLVL}:on " else echo -n "${RLVL}:off " fi done echo done | column -t fi