From d3d1aba95f5a6d1b424cc61f421772482f8ee8bd Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Sun, 7 Mar 1999 22:37:52 +0000 Subject: Move rc.autofs to rc.autofs.in --- samples/rc.autofs | 261 --------------------------------------------------- samples/rc.autofs.in | 261 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 261 insertions(+), 261 deletions(-) delete mode 100644 samples/rc.autofs create mode 100644 samples/rc.autofs.in diff --git a/samples/rc.autofs b/samples/rc.autofs deleted file mode 100644 index 2fc9391..0000000 --- a/samples/rc.autofs +++ /dev/null @@ -1,261 +0,0 @@ -#! /bin/bash -# -# $Id$ -# -# rc file for automount using a Sun-style "master map". -# We first look for a local /etc/auto.master, then a YP -# map with that name -# -# On most distributions, this file should be called: -# /etc/rc.d/init.d/autofs or /etc/init.d/autofs -# - -# This is used in the Debian distribution to determine the proper -# location for the S- and K-links to this init file. -# The following value is extracted by debstd to figure out how to -# generate the postinst script. Edit the field to change the way the -# script is registered through update-rc.d (see the manpage for -# update-rc.d!) -# -FLAGS="defaults 21" - -# -# Location of the automount daemon -# -DAEMON=/usr/sbin/automount - -# -# Determine which kind of configuration we're using -# -system=unknown -if [ -f /etc/debian_version ]; then - system=debian - initdir=/etc/init.d -elif [ -f /etc/redhat-release ]; then - system=redhat - initdir=/etc/rc.d/init.d -else - echo "$0: Unknown system, please port and contact autofs@linux.kernel.org" 1>&2 - exit 1 -fi - -if [ $system = redhat ]; then - . $initdir/functions -fi - -test -e $DAEMON || exit 0 -thisscript="$0" -if [ ! test -f $thisscript ]; then - echo "$0: Cannot find myself" 1>&2 - exit 1 -fi - -PATH=/sbin:/usr/sbin:/bin:/usr/bin -export PATH - -# -# We can add local options here -# e.g. localoptions='rsize=8192,wsize=8192' -# -localoptions='' - -# -# This function will build a list of automount commands to execute in -# order to activate all the mount points. It is used to figure out -# the difference of automount points in case of a reload -# -function getmounts() -{ -# -# Check for local maps to be loaded -# -if [ -f /etc/auto.master ] -then - cat /etc/auto.master | sed -e '/^#/d' -e '/^$/d'| ( - while read dir map options - do - if [ ! -z "$dir" -a ! -z "$map" \ - -a x`echo "$map" | cut -c1` != 'x-' ] - then - map=`echo "/etc/$map" | sed -e 's:^/etc//:/:'` - options=`echo "$options" | sed -e 's/\(^\|[ \t]\)-/\1/g'` - if [ -x $map ]; then - echo "$DAEMON $dir program $map $options $localoptions" - elif [ -f $map ]; then - echo "$DAEMON $dir file $map $options $localoptions" - else - echo "$DAEMON $dir `basename $map` $options $localoptions" - fi - fi - done - ) -fi - -# -# Check for YellowPage maps to be loaded -# -if [ -e /usr/bin/ypcat ] && [ `ypcat -k auto.master 2>/dev/null | wc -l` -gt 0 ] -then - ypcat -k auto.master | ( - while read dir map options - do - if [ ! -z "$dir" -a ! -z "$map" \ - -a x`echo "$map" | cut -c1` != 'x-' ] - then - map=`echo "$map" | sed -e 's/^auto_/auto./'` - if echo $options | grep -- '-t' >/dev/null 2>&1 ; then - mountoptions="--timeout $(echo $options | \ - sed 's/^.*-t\(imeout\)*[ \t]*\([0-9][0-9]*\).*$/\2/g')" - fi - options=`echo "$options" | sed -e ' - s/--*t\(imeout\)*[ \t]*[0-9][0-9]*//g - s/\(^\|[ \t]\)-/\1/g'` - echo "$DAEMON $dir yp $map $options $localoptions" - fi - done - ) -fi -} - -# -# Status lister. -# -function status() -{ - echo "Configured Mount Points:" - echo "------------------------" - getmounts - echo "" - echo "Active Mount Points:" - echo "--------------------" - ps ax|grep "[0-9]:[0-9][0-9] automount " | ( - while read pid tt stat time command; do echo $command; done - ) -} - - -# -# Redhat start/stop function. -# -function redhat() -{ - -# -# See how we were called. -# -case "$1" in - start) - # Check if the automounter is already running? - if [ ! -f /var/lock/subsys/automount ]; then - echo 'Starting automounter: ' - getmounts | sh - touch /var/lock/subsys/automount - fi - ;; - stop) - kill -TERM $(/sbin/pidof /usr/sbin/automount) - rm -f /var/lock/subsys/automount - ;; - reload|restart) - if [ ! -f /var/lock/subsys/automount ]; then - echo "Automounter not running" - exit 1 - fi - echo "Checking for changes to /etc/auto.master ...." - TMP1=`mktemp /tmp/autofs.XXXXXX` || { echo "could not make temp file" >& 2; exit 1; } - TMP2=`mktemp /tmp/autofs.XXXXXX` || { echo "could not make temp file" >& 2; exit 1; } - getmounts >$TMP1 - ps ax|grep "[0-9]:[0-9][0-9] automount " | ( - while read pid tt stat time command; do - echo "$command" >>$TMP2 - if ! grep -q "^$command" $TMP2; then - kill -USR2 $pid - echo "Stop $command" - fi - done - ) - cat $TMP1 | ( while read x; do - if ! grep -q "^$x" $TMP2; then - $x - echo "Start $x" - fi - done ) - rm -f $TMP1 $TMP2 - ;; - status) - status - ;; - *) - echo "Usage: $initdir/autofs {start|stop|restart|reload|status}" - exit 1 -esac -} - -# -# Debian start/stop functions. -# -function debian() -{ -# -# See how we were called. -# -case "$1" in - start) - echo -n 'Starting automounter:' - getmounts | while read cmd mnt rest - do - echo -n " $mnt" - pidfile=/var/run/automount`echo $mnt | sed 's/\//./'`.pid - start-stop-daemon --start --pidfile $pidfile --quiet \ - --exec $DAEMON -- $mnt $rest - # - # Automount needs a '--pidfile' or '-p' option. - # For now we look for the pid ourself. - # - ps ax | grep "[0-9]:[0-9][0-9] $DAEMON $mnt" | ( - read pid rest - echo $pid > $pidfile - echo "$mnt $rest" >> $pidfile - ) - done - echo "." - ;; - stop) - echo 'Stopping automounter.' - start-stop-daemon --stop --quiet --signal USR2 --exec $DAEMON - ;; - reload|restart) - echo "Reloading automounter: checking for changes ... " - TMP=/var/run/automount.tmp - getmounts >$TMP - for i in /var/run/automount.*.pid - do - pid=`head -n 1 $i 2>/dev/null` - [ "$pid" = "" ] && continue - command=`tail +2 $i` - if ! grep -q "^$command" $TMP - then - echo "Stopping automounter: $command" - kill -USR2 $pid - fi - done - rm -f $TMP - $thisscript start - ;; - status) - status - ;; - *) - echo "Usage: $initdir/autofs {start|stop|restart|reload|status}" >&2 - exit 1 - ;; -esac -} - -if [ $system = debian ]; then - debian "$@" -elif [ $system = redhat ]; then - redhat "$@" -fi - -exit 0 diff --git a/samples/rc.autofs.in b/samples/rc.autofs.in new file mode 100644 index 0000000..2fc9391 --- /dev/null +++ b/samples/rc.autofs.in @@ -0,0 +1,261 @@ +#! /bin/bash +# +# $Id$ +# +# rc file for automount using a Sun-style "master map". +# We first look for a local /etc/auto.master, then a YP +# map with that name +# +# On most distributions, this file should be called: +# /etc/rc.d/init.d/autofs or /etc/init.d/autofs +# + +# This is used in the Debian distribution to determine the proper +# location for the S- and K-links to this init file. +# The following value is extracted by debstd to figure out how to +# generate the postinst script. Edit the field to change the way the +# script is registered through update-rc.d (see the manpage for +# update-rc.d!) +# +FLAGS="defaults 21" + +# +# Location of the automount daemon +# +DAEMON=/usr/sbin/automount + +# +# Determine which kind of configuration we're using +# +system=unknown +if [ -f /etc/debian_version ]; then + system=debian + initdir=/etc/init.d +elif [ -f /etc/redhat-release ]; then + system=redhat + initdir=/etc/rc.d/init.d +else + echo "$0: Unknown system, please port and contact autofs@linux.kernel.org" 1>&2 + exit 1 +fi + +if [ $system = redhat ]; then + . $initdir/functions +fi + +test -e $DAEMON || exit 0 +thisscript="$0" +if [ ! test -f $thisscript ]; then + echo "$0: Cannot find myself" 1>&2 + exit 1 +fi + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +export PATH + +# +# We can add local options here +# e.g. localoptions='rsize=8192,wsize=8192' +# +localoptions='' + +# +# This function will build a list of automount commands to execute in +# order to activate all the mount points. It is used to figure out +# the difference of automount points in case of a reload +# +function getmounts() +{ +# +# Check for local maps to be loaded +# +if [ -f /etc/auto.master ] +then + cat /etc/auto.master | sed -e '/^#/d' -e '/^$/d'| ( + while read dir map options + do + if [ ! -z "$dir" -a ! -z "$map" \ + -a x`echo "$map" | cut -c1` != 'x-' ] + then + map=`echo "/etc/$map" | sed -e 's:^/etc//:/:'` + options=`echo "$options" | sed -e 's/\(^\|[ \t]\)-/\1/g'` + if [ -x $map ]; then + echo "$DAEMON $dir program $map $options $localoptions" + elif [ -f $map ]; then + echo "$DAEMON $dir file $map $options $localoptions" + else + echo "$DAEMON $dir `basename $map` $options $localoptions" + fi + fi + done + ) +fi + +# +# Check for YellowPage maps to be loaded +# +if [ -e /usr/bin/ypcat ] && [ `ypcat -k auto.master 2>/dev/null | wc -l` -gt 0 ] +then + ypcat -k auto.master | ( + while read dir map options + do + if [ ! -z "$dir" -a ! -z "$map" \ + -a x`echo "$map" | cut -c1` != 'x-' ] + then + map=`echo "$map" | sed -e 's/^auto_/auto./'` + if echo $options | grep -- '-t' >/dev/null 2>&1 ; then + mountoptions="--timeout $(echo $options | \ + sed 's/^.*-t\(imeout\)*[ \t]*\([0-9][0-9]*\).*$/\2/g')" + fi + options=`echo "$options" | sed -e ' + s/--*t\(imeout\)*[ \t]*[0-9][0-9]*//g + s/\(^\|[ \t]\)-/\1/g'` + echo "$DAEMON $dir yp $map $options $localoptions" + fi + done + ) +fi +} + +# +# Status lister. +# +function status() +{ + echo "Configured Mount Points:" + echo "------------------------" + getmounts + echo "" + echo "Active Mount Points:" + echo "--------------------" + ps ax|grep "[0-9]:[0-9][0-9] automount " | ( + while read pid tt stat time command; do echo $command; done + ) +} + + +# +# Redhat start/stop function. +# +function redhat() +{ + +# +# See how we were called. +# +case "$1" in + start) + # Check if the automounter is already running? + if [ ! -f /var/lock/subsys/automount ]; then + echo 'Starting automounter: ' + getmounts | sh + touch /var/lock/subsys/automount + fi + ;; + stop) + kill -TERM $(/sbin/pidof /usr/sbin/automount) + rm -f /var/lock/subsys/automount + ;; + reload|restart) + if [ ! -f /var/lock/subsys/automount ]; then + echo "Automounter not running" + exit 1 + fi + echo "Checking for changes to /etc/auto.master ...." + TMP1=`mktemp /tmp/autofs.XXXXXX` || { echo "could not make temp file" >& 2; exit 1; } + TMP2=`mktemp /tmp/autofs.XXXXXX` || { echo "could not make temp file" >& 2; exit 1; } + getmounts >$TMP1 + ps ax|grep "[0-9]:[0-9][0-9] automount " | ( + while read pid tt stat time command; do + echo "$command" >>$TMP2 + if ! grep -q "^$command" $TMP2; then + kill -USR2 $pid + echo "Stop $command" + fi + done + ) + cat $TMP1 | ( while read x; do + if ! grep -q "^$x" $TMP2; then + $x + echo "Start $x" + fi + done ) + rm -f $TMP1 $TMP2 + ;; + status) + status + ;; + *) + echo "Usage: $initdir/autofs {start|stop|restart|reload|status}" + exit 1 +esac +} + +# +# Debian start/stop functions. +# +function debian() +{ +# +# See how we were called. +# +case "$1" in + start) + echo -n 'Starting automounter:' + getmounts | while read cmd mnt rest + do + echo -n " $mnt" + pidfile=/var/run/automount`echo $mnt | sed 's/\//./'`.pid + start-stop-daemon --start --pidfile $pidfile --quiet \ + --exec $DAEMON -- $mnt $rest + # + # Automount needs a '--pidfile' or '-p' option. + # For now we look for the pid ourself. + # + ps ax | grep "[0-9]:[0-9][0-9] $DAEMON $mnt" | ( + read pid rest + echo $pid > $pidfile + echo "$mnt $rest" >> $pidfile + ) + done + echo "." + ;; + stop) + echo 'Stopping automounter.' + start-stop-daemon --stop --quiet --signal USR2 --exec $DAEMON + ;; + reload|restart) + echo "Reloading automounter: checking for changes ... " + TMP=/var/run/automount.tmp + getmounts >$TMP + for i in /var/run/automount.*.pid + do + pid=`head -n 1 $i 2>/dev/null` + [ "$pid" = "" ] && continue + command=`tail +2 $i` + if ! grep -q "^$command" $TMP + then + echo "Stopping automounter: $command" + kill -USR2 $pid + fi + done + rm -f $TMP + $thisscript start + ;; + status) + status + ;; + *) + echo "Usage: $initdir/autofs {start|stop|restart|reload|status}" >&2 + exit 1 + ;; +esac +} + +if [ $system = debian ]; then + debian "$@" +elif [ $system = redhat ]; then + redhat "$@" +fi + +exit 0 -- cgit