# shell scripts
editpaths = sed \
-e 's|@bindir[@]|$(bindir)|g' \
+ -e 's|@sbindir[@]|$(sbindir)|g' \
-e 's|@libdir[@]|$(libdir)|g' \
-e 's|@sysconfdir[@]|$(sysconfdir)|g' \
-e 's|@datadir[@]|$(pkgdatadir)|g' \
# current directory too.
if [ `dirname $0` = "." ] && [ $PWD != "/etc/init.d" ]; then
BINDIR=.
+ SBINDIR=.
LIBDIR=.
ETCDIR=.
else
BINDIR=@bindir@
+ SBINDIR=@prefix@/sbin
LIBDIR=@libdir@/ceph
ETCDIR=@sysconfdir@/ceph
fi
get_conf post_start "" "post start command"
[ -n "$pre_start" ] && do_cmd "$pre_start"
do_cmd "$cmd" $runarg
+
+ if [ "$type" = "mon" ]; then
+ # this will only work if we are using default paths
+ # for the mon data and admin socket. if so, run
+ # ceph-create-keys. this is the case for (normal)
+ # chef and ceph-deploy clusters, which is who needs
+ # these keys. it's also true for default installs
+ # via mkcephfs, which is fine too; there is no harm
+ # in creating these keys.
+ get_conf mon_data "/var/lib/ceph/mon/ceph-$id" "mon data"
+ get_conf asok "/var/run/ceph-$type.$id.asok" "admin socket"
+ if [ "$mon_data" = "/var/lib/ceph/mon/ceph-$id" -a "$asok" = "/var/run/ceph/ceph-mon.$id.asok" ]; then
+ echo Starting ceph-create-keys on $host...
+ cmd2="$SBINDIR/ceph-create-keys -i $id 2> /dev/null &"
+ do_cmd "$cmd2"
+ fi
+ fi
+
[ -n "$post_start" ] && do_cmd "$post_start"
[ -n "$lockfile" ] && [ "$?" -eq 0 ] && touch $lockfile
;;