I noticed a problem with the RPM install of gexec. I'm installing the gexec RPM using Red Hat 7.2's kickstart installation system (so the whole cluster comes up gexec-ready).

The gexec postinstall scriptlet is:

echo "Sending SIGUSR2 to xinetd (pid `cat /var/run/xinetd.pid`)"
kill -USR2 `cat /var/run/xinetd.pid`
postuninstall scriptlet (through /bin/sh):
echo "Sending SIGUSR2 to xinetd (pid `cat /var/run/xinetd.pid`)"
kill -USR2 `cat /var/run/xinetd.pid`


There are several problems with this:

1) xinetd isn't running at kickstart time
2) kickstart's rather limited version of kill doesn't support the -USR2 command (I think)

one or the other causes the second kill to reeturn non-zero, and the shell returns non-zero (since it returns the exit status of the last command). This causes the RPM installer to think the postinstall scriptlet failed. This isn't a major error, as the package is still installed, but it shouldn't occur (at least, the exit sciprt should not return 1 if it failed to restart xinetd).

Also, stylistically, I think that gexec shouldn't actually retart xinetd as part of the RPM. I understand the rationale (make it as easy for the admin as possible), but typically the Red Hat RPMs don't do this, it's even documented in the manual and the errata that the proper way to do this after installing an RPM is to use 'service <blah> restart' in the case of non-xinetd daemons when installing or upgrading a standalone daemone, and 'chkconfig <blah> on' in the case of an xinetd service:

http://www.redhat.com/docs/errata/RHL-7.2-Manual/
http://www.redhat.com/docs/manuals/linux/RHL-7.2-Manual/custom-guide/chkconfig.html

Dave



Reply via email to