Your problem is the very first line of your script #/bin/sh should be #!/bin/sh Note the missing ! in your line. #! is a magic sequence to Liunx/UNIX to run the program as a script. The interpreter is whatever is on the rest of the line. ie. #!/bin/perl is for a perl script. Greg On Fri, 25 Feb 2005 14:56:13 +0200, Juha Koivisto wrote: > I'm not sure if my previous message is going to make it to the list (by > now it hasn't yet, at least according to the web archive), but I solved > my problem already. It turns out that in order to use a shell script as > prio_callout (in multipath.conf), the command needs to be explicitly > executed with /bin/sh. > > This works (at least for me): > > /etc/multipath.conf: > ---cut--- > devices { > device { > vendor "DGC " > product "*" > path_grouping_policy group_by_prio > prio_callout "/bin/sh /usr/local/sbin/get_path_prio %n" > #getuid_callout "/sbin/scsi_id -g -s /block/%n" > #path_checker emc_clariion > path_selector "round-robin 0" > hardware_handler "1 emc" > } > } > ---cut--- > > /usr/local/sbin/get_path_prio: > ---cut--- > #/bin/sh > > PATH=/bin:/usr/bin > > prio=1 > if [ -e /sys/block/$1/device ]; then > target=`ls -l /sys/block/$1/device | tr / "\n" | grep target.:.:` > if [ -e /sys/class/fc_transport/$target/port_name ]; then > id=`cut -c 10 < /sys/class/fc_transport/$target/port_name` > case $id in > 0 | 1 | 2 | 3 ) > prio=1 > ;; > 8 | 9 | a | b | A | B ) > prio=2 > ;; > esac > fi > fi > > echo $prio > ---cut--- > > I don't know if I should use emc_clarion as path_checker (it sees the > non-active paths as "ready", while the default readsector0 reports them > as faulty), but I guess that's not very important right now. > > Please Cc: me in replies, I'm not subscribed to the list. > > -- > Juha.Koivisto@xxxxxx > > -- > > dm-devel@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/dm-devel >