Bug 17385
Summary: | Missing shared library | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | David Highley <david.m.highley> |
Component: | autofs | Assignee: | Nalin Dahyabhai <nalin> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 6.2 | CC: | dmetz |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2004-03-19 20:19:56 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
David Highley
2000-09-09 19:18:32 UTC
/usr/lib/autofs is a directory, not a library. What are the error messages you're getting? /var/log/messages: automount: can not open lookup module auto.home (/usr/lib/autofs//lookup_auto.home.so: can not open shared object file: No such file or directory) What does your automounter master map (auto.master) look like? It looks like the lookup type is being set to auto.home instead of "yp" with "auto.home" as the name of the map.... nalin, I'm sure you are aware of the list of problems reported for the autofs script. I looked at the rh-7 version (autofs-3.1.5 I believe). It got most of them. But it still has a bug in the restart section. I think the code is stepping a little over the KISS line tool. Also, in the area of use /etc/auto.master, don't use /etc/auto.master, use yp:auto.master, I would like the option to use only /etc/auto.master or to use both whether there is a yp:auto.master or not as we used to be able to do under sunos/solaris. I'm including an autofs script below that addresses these issues. Note the trailing $ in the grep expression for reload. And the + format support for auto.master. The autofs and auto.master manpages need updated to reflect these. They've been fairly well tested. Sorry about stripping the hesiod and debian support. I can't test those. I think they could be added back and still keep most of the simplicity. Derald dmetz ------------------------------------------------------------------- ! /bin/bash # $Id$ # $crtd: by Derald Metzger on 000926 $ # $cmnt: # # WARNING: 000926 - Derald Metzger <dmetz> # The autofs-3.1.4-4 autofs with redhat-6.2 had some problems and # didn't support optional inclusion of a yp:auto.master. # I looked at the rh-7.0 release and thought it went a bit too far # beyond the KISS requirements. This fixes the problems I found # and adds support for control of yp:auto.master via a "+" field in # the /etc/auto.master. It does NOT support debian, hesiod maps, # etc. # # Much of this is borrowed from the script in the autofs-3.1.4-4 pkg # of redhat release 6.2. # # Some notes based on the autofs-3.1.4-4 manpages: # auto.master(5) note: # Format of the mapfield is maptype:mapname. Only the file and yp map # types are addressed here tho others could easily be added in the # case table. The default map type (null type field) is yp. # # 000927-dam. Summary of changes: # 1. Strip of support for debian and hesiod maps. I can't test those. # 2. Document and pretty print for readability. # 3. Fix for use of yp maps in /etc/auto.master. # 4. Extend to support appending yp:auto.master via + in /etc/auto.master. # 5. Fix restart/reload. # 6. Add pid param to status: eg ./autofs status pid # This will prefix the pids to the active processes list. # 7. The default map tpye (null type field) is yp. This should make # this autofs backward compatable in many situations. # # chkconfig: 345 18 82 # processname: /usr/sbin/automount # config: /etc/auto.master # description: autofs starts/stops/monitors automount processes \ # which mount filesystems on demand # $ # Setup DAEMON=/usr/sbin/automount initdir=/etc/rc.d/init.d . $initdir/functions PATH=/sbin:/usr/sbin:/bin:/usr/bin export PATH # We can add local options here, e.g. localoptions='rsize=8192,wsize=8192' localoptions='rsize=8192,wsize=8192' # This function will parse a map line from an auto.master and echo # a suitable automount cmdline or an err msg. function parse_line() { [ -d "$dir" ] || { echo "### No dir for mountpoint $dir"; continue; } if echo "$mapfield" | grep -q : >/dev/null; then \ type=`echo $mapfield | cut -d: -f1` map=`echo $mapfield | cut -d: -f2` else type=yp map=$mapfield fi [ -z $map ] && { echo "### Bad map arg for $dir"; continue; } # Get possible timeout option if echo $options | grep -- '-t' >/dev/null 2>&1 ; then \ timo=`echo "$options" |\ sed 's/--*t\(imeout\)*[ \t=]*\([0-9][0-9]*\).*$/--timeout \2/g'` fi #collect all other options, converting -rwsize, et al to rwsize options=`echo "$options" | sed -e 's/--*t\(imeout\)*[ \t]*[0-9][0-9]*//g'` case $type in file) cmd="$DAEMON $timo $dir file $map $options $localoptions" ;; yp) cmd="$DAEMON $timo $dir yp $map $options $localoptions" ;; *) echo "### bad maptype for $dir"; return ;; esac echo $cmd | sed 's/ / /g' } # Function to echo a list of automount commands based on content of # the auto.master files. Output is used to start automounter # processes or check the config against running processes. function getmounts() { # Check for local maps to be loaded if [ -f /etc/auto.master ]; then \ echo "## file:/etc/auto.master" # /etc/auto.master exists so set the no yp:auto.master flag. NOYPFLG=`mktemp /tmp/autofs_noypflg.XXXXXX` cat /etc/auto.master | sed -e '/^#/d' -e '/^$/d'| while read dir mapfield options; do # If 1st field is a + clear the no yp:auto.master flag. [ "$dir" = + ] && { rm -f $NOYPFLG; continue; } parse_line done fi # Conditionally check for yp:auto.master [ -f $NOYPFLG ] && rm -f $NOYPFLG && return [ -x /usr/bin/ypcat ] || return echo "## yp:auto.master" ypcat -k auto.master | while read dir mapfield options; do parse_line done } # See how we were called. case "$1" in start) # Check if the automounter is already running? if [ ! -f /var/lock/subsys/autofs ]; then echo -n 'Starting automounter: ' getmounts | sh && success "autofs startup" || failure "autofs startup" echo touch /var/lock/subsys/autofs fi ;; stop) echo -n "Stopping automounter:" killproc $DAEMON echo rm -f /var/lock/subsys/autofs ;; reload|restart) if [ ! -f /var/lock/subsys/autofs ]; then echo "Automounter not running" exit 1 fi echo "Checking for changes to 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 cat $TMP1 ps axwww|grep "[0-9]:[0-9][0-9] $DAEMON " | while read pid tt stat time command; do echo "$command" >>$TMP2 # If running cmds not in config then stop them if ! grep -q "^$command$" $TMP1; then kill -USR2 $pid echo "Stop $command" fi done cat $TMP1 | while read x; do [ `expr "$x" : '#'` -gt 0 ] && continue # If configed cmds not running start them if ! grep -q "^$x$" $TMP2; then $x echo "Start $x" fi done rm -f $TMP1 $TMP2 ;; status) echo "Configured Mount Points:" echo "------------------------" getmounts echo "" echo "Active Mount Points:" echo "--------------------" ps axwww|grep "[0-9]:[0-9][0-9] $DAEMON " | while read pid tt stat time command; do [ "$2" = "pid" ] && echo -n "pid=$pid " echo $command done ;; *) echo "Usage: $initdir/autofs {start|stop|reload|status}" exit 1 esac exit 0 should be updated to support the I'll have to take some time to look at the revised script -- since we already deviate from the canonical init script, I guess we could drop the debian section altogether, but that makes the patch bigger. Please also send it to the autofs mailing list if you think it's a general improvement -- I've seen at least 5 different versions on the list in the last few months. Mods/fixes for the autofs script by Derald Metzger: 1. Change item 7. in the doc to read: # 7. If there is no colon in the mapfield the default type will be # file if the 1st char is / otherwise yp. This should make things # backward compatable in many situations. 2. Insert befor the else in function parse_line() elif echo "$mapfield" | grep -q "^/" >/dev/null; then \ type=file map=$mapfield 3. In function gemounts() quote the $NOYPFLG in the test line like so: [ -f "$NOYPFLG" ] && rm -f $NOYPFLG && return Okay, I think the support for "+" maps in auto.master is in 3.1.7-20. I'd get too many complaints if I tried backing out the various gymnastics the current script goes through, so it can't just be reverted. Adding the "$" at the end of the pattern seemed to not work correctly -- I'll have to look at that some more. |