]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
init-ceph.in: Make init-ceph work under FreeBSD for init-system 13209/head
authorWillem Jan Withagen <wjw@digiware.nl>
Sat, 11 Feb 2017 01:11:35 +0000 (02:11 +0100)
committerWillem Jan Withagen <wjw@digiware.nl>
Sat, 11 Feb 2017 12:26:58 +0000 (13:26 +0100)
 -  FreeBSD find does not have printf option
 -  use the packaged getopt in /usr/local
 -  Only apply user-facts when user ceph is available

Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
src/ceph_common.sh
src/init-ceph.in

index 0a4ac229f5b5631deaf09ad347aea49d036b56e3..a8d4d5513f07db05357446c2a3615a780f35dc9a 100644 (file)
@@ -159,7 +159,8 @@ do_root_cmd_okfail() {
 get_local_daemon_list() {
     type=$1
     if [ -d "/var/lib/ceph/$type" ]; then
-       for i in `find -L /var/lib/ceph/$type -mindepth 1 -maxdepth 1 -type d -printf '%f\n'`; do
+       for p in `find -L /var/lib/ceph/$type -mindepth 1 -maxdepth 1 -type d'`; do
+           i=`basename $p` 
            if [ -e "/var/lib/ceph/$type/$i/sysvinit" ]; then
                id=`echo $i | sed 's/[^-]*-//'`
                local="$local $type.$id"
index 976e1b3253ef55a86d727bde9c73dca4537a163f..e9158d68ff4a422fb475dd2ac460e364e6ebae37 100755 (executable)
@@ -50,6 +50,16 @@ if [ -n "$CEPH_BIN" ] && [ -n "$CEPH_ROOT" ] && [ -n "$CEPH_BUILD_DIR" ]; then
   ASSUME_DEV=1
 fi
 
+if [ `uname` = FreeBSD ]; then
+  GETOPT=/usr/local/bin/getopt
+else
+  GETOPT=getopt
+fi
+
+if id ceph > /dev/null 2>&1; then
+  SET_CEPHUSER_ARGS=" --setuser ceph --setgroup ceph"
+fi
+
 usage_exit() {
     echo "usage: $0 [options] {start|stop|restart|condrestart} [mon|osd|mds]..."
     printf "Core options:\n"
@@ -137,7 +147,7 @@ stop_daemon() {
 ## command line options
 options=
 
-OPTS=$(getopt -n 'init-ceph' -o 'hvam:c:' -l 'help,verbose,valgrind,novalgrind,allhosts,restart,norestart,btrfs,nobtrfs,fsmount,nofsmount,btrfsumount,fsumount,conf:,cluster:,hostname:' -- "$@")
+OPTS=$(${GETOPT} -n 'init-ceph' -o 'hvam:c:' -l 'help,verbose,valgrind,novalgrind,allhosts,restart,norestart,btrfs,nobtrfs,fsmount,nofsmount,btrfsumount,fsumount,conf:,cluster:,hostname:' -- "$@")
 if [ $? != 0 ]
 then
     exit 1
@@ -352,7 +362,7 @@ for name in $what; do
 
            [ -n "$TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES" ] && tcmalloc="TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=$TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES"
 
-           cmd="$files $tcmalloc $wrap $cmd --cluster $cluster --setuser ceph --setgroup ceph $runmode"
+           cmd="$files $tcmalloc $wrap $cmd --cluster $cluster ${SET_CEPHUSER_ARGS} ceph $runmode"
 
            if [ $dofsmount -eq 1 ] && [ -n "$fs_devs" ]; then
                get_conf pre_mount "true" "pre mount command"