1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-22 02:50:28 +03:00

initscript: handle spaces in option values inserted into $CTDB_OPTIONS.

This puts single quotes around everything and uses eval on the
command-lines that actually start ctdbd.  The eval causes the single
quotes to be interpreted.

The "redhat" init style no longer uses the Red Hat daemon function.
It loses the quoting and re-splits on spaces.  Instead we add an extra
line that uses the success/failure functions to keep things pretty.
Note that this means that we don't respect daemon's
$DAEMON_COREFILE_LIMIT variable but we do our own core file handling
with $CTDB_SUPPRESS_COREFILE anyway.  daemon's core file handling was
probably overriding what we were doing anyway, so this can be regarded
as a bug fix.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 9a9b36149042d4d8f455959582ec5c882162266a)
This commit is contained in:
Martin Schwenke 2010-01-22 13:19:00 +11:00
parent 9660f9c887
commit 44f2605dd6

View File

@ -65,7 +65,7 @@ build_ctdb_options () {
# then return
[ -z "$2" -o \( -n "$3" -a "$3" != "$2" \) ] && return
val="$2"
val="'$2'"
case "$1" in
--*) sep="=" ;;
-*) sep=" " ;;
@ -186,25 +186,26 @@ start() {
case $init_style in
valgrind)
valgrind -q --log-file=/var/log/ctdb_valgrind \
$ctdbd --valgrinding $CTDB_OPTIONS
eval valgrind -q --log-file=/var/log/ctdb_valgrind \
$ctdbd --valgrinding "$CTDB_OPTIONS"
RETVAL=$?
echo
;;
suse)
startproc $ctdbd $CTDB_OPTIONS
eval startproc $ctdbd "$CTDB_OPTIONS"
rc_status -v
RETVAL=$?
;;
redhat)
daemon $ctdbd $CTDB_OPTIONS
eval $ctdbd "$CTDB_OPTIONS"
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ctdb || RETVAL=1
;;
debian)
start-stop-daemon --start --quiet --background \
--exec $ctdbd -- $CTDB_OPTIONS
eval start-stop-daemon --start --quiet --background \
--exec $ctdbd -- "$CTDB_OPTIONS"
RETVAL=$?
;;
esac