clvmd daemon itself does the right thing when invoked as non-root, by
returning 4.
The patch removes the use daemon function from
/etc/rc.d/init.d/functions that´s unnecessary and has th bad habit to
mask the return codes from the real daemon.
Add a simple and generic check to see if clvmd is executed by root or not.
Our stop/reload/restart paths in the init script are complex and not all
the tools involved in the process are guaranteed to return 4 if executed
by non-root against a process that´s running as root (for example kill
-TERM will return -1 and parsing the output to catch the error is
suboptimal at best).
https://bugzilla.redhat.com/show_bug.cgi?id=553381
Version 2.02.73 -
================================
+ Fix clvmd init script exit code when executed as non-root user.
Change default alignment of pe_start to 1MB.
Add --norestorefile option to pvcreate.
Require --restorefile when using pvcreate --uuid.
{
if ! rh_status_q; then
echo -n "Starting $DAEMON: "
- daemon $DAEMON $CLVMDOPTS || return $?
+ $DAEMON $CLVMDOPTS || return $?
echo
fi
fi
}
+[ "$EUID" != "0" ] && {
+ echo "clvmd init script can only be executed as root user"
+ exit 4
+}
+
# See how we were called.
case "$1" in
start)