Description of problem:
There are a few minor issues with the init script for tcsd.
When starting tcsd on a system which doesn't have modules present in the
$MOD_DIR directory (MOD_DIR=/lib/modules/$(uname -r)/kernel/drivers/char/tpm),
specified in /etc/rc.d/init.d/tcsd, there is an error present in the output.
%> service tcsd start
/etc/init.d/tcsd: line 34: cd:
/lib/modules/2.6.18-53.1.14.el5PAE/kernel/drivers/char/tpm: No such file or
Starting tcsd: [FAILED]
[ OK ]
The function load_drivers() doesn't check first whether $MOD_DIR exists before
If no modules are present in MOD_DIR (or it doesn't exist), then the init
process should probably give up and return fail out of this function.
As can be seen in the above output, the log message for what is actually FAILED
or OK isn't output. I suggest keeping things consistent and use:
echo -n $"SHORT MESSAGE"
if [[ ... ]]; then
When executing 'start', if we encounter a failure in loading the correct
drivers, does it really make sense to continue trying to start TCSD?
There is no log message indicating what action is being run here, but there is
output indicating "it" is OK:
# [ OK ]
comes from this line:
touch /var/lock/subsys/tcsd && success
If the $TCSD $START_OPT command returns 0, it outputs OK. Good. However, if it
doesn't, then it reports nothing. Init scripts should be more robust to report
the failures as well as the successes.
My interpretation of the LSB standards we are trying to meet at Red Hat leads me
to think that if the modules aren't able to be located, the script should exit
with '5' # program is not installed
Version-Release number of selected component (if applicable):
This request was evaluated by Red Hat Product Management for
inclusion, but this component is not scheduled to be updated in
the current Red Hat Enterprise Linux release. If you would like
this request to be reviewed for the next minor release, ask your
support representative to set the next rhel-x.y flag to "?".
Development Management has reviewed and declined this request.
You may appeal this decision by reopening this request.