[lm-sensors] PATCH: make lm_sensors init script return values LSB compliant
Hans de Goede
j.w.r.degoede at hhs.nl
Wed Feb 13 13:07:33 CET 2008
Jean Delvare wrote:
> Hi Hans,
>
Hi Jean,
Thanks for the thorough review!
> On Mon, 11 Feb 2008 13:04:10 +0100, Hans de Goede wrote:
>> I've received the attached patch through Fedora's bugzilla. It fixes the return
>> values of the various error exit cases to match the LSB spec:
>> http://refspecs.linux-foundation.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
>>
>> It looks sane to me, if there are no objections I'll commit it to svn.
>
>> --- lm_sensors.orig 2008-02-07 11:37:22.000000000 -0500
>> +++ lm_sensors 2008-02-07 11:41:04.000000000 -0500
>> @@ -40,15 +40,15 @@
>>
>> # Don't bother if /proc/sensors still doesn't exist, kernel doesn't have
>> # support for sensors.
>> - [ -e /proc/sys/dev/sensors ] || exit 0
>> + [ -e /proc/sys/dev/sensors ] || exit 6
>
> Note that this doesn't work with a 2.6 kernel anyway, which makes me
> wonder whether it's worth keeping these init files in the lm-sensors
> tree. Obviously no distribution uses them as-is.
>
It helps to read the whole script before jumping to conclusions like this,
above this is:
if grep -q sysfs /proc/mounts; then
WITHSYS=1
else
WITHSYS=0
fi
if [ $WITHSYS == "0" ]; then
So this piece of code doesn't get executed on 2.6 kernels with sysfs enabled.
And actually atleast one distro (Fedora) is using the scrip as is.
>>
>> # If sensors was not already running, unload the module...
>> [ -e /var/lock/subsys/lm_sensors ] || /sbin/modprobe -r i2c-proc >/dev/null 2>&1
>> fi
>>
>> CONFIG=/etc/sysconfig/lm_sensors
>> -[ -r "$CONFIG" ] || exit 0
>> -grep '^MODULE_' $CONFIG >/dev/null 2>&1 || exit 0
>> +[ -r "$CONFIG" ] || exit 6
>> +grep '^MODULE_' $CONFIG >/dev/null 2>&1 || exit 6
>
> I am worried that this error check (and the one above) is done
> independently of the command, i.e. also for command "status", while the
> document you mentioned above states that the error codes are different
> for this command, and "6" isn't valid there. So I think that the
> configuration file check and loading should be moved to the specific
> commands that need it (start and stop as far as I can see) before you
> can return 6 on missing configuration file.
>
Good point I'll do a new version of the patch where all these checks are put in
a function and that function only gets called from the relevant commands.
>>
>> # Load config file
>> . "$CONFIG"
>> @@ -147,7 +147,7 @@
>> ;;
>> *)
>> echo "Usage: $0 {start|stop|status|restart|reload|condrestart}"
>> - exit 1
>> + exit 3
>
> None of the init scripts in openSuse does this. They all use "exit 1",
> and that sounds reasonable to me. If the user runs "lm_sensors blah",
> it will fail, not because it is an "unimplemented feature" (3) but
> because the user typed a command that doesn't exist. So I wouldn't
> change it, but if you really don't like 1, then 2 ("invalid or excess
> argument(s)") would be a better choice (we have one openSuse script
> that does this.)
>
Okay, I'll change things to keep exit 1 in this case.
Regards,
Hans
More information about the lm-sensors
mailing list