]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-daemons: simplify crun/valgrind logic
authorSage Weil <sage@newdream.net>
Sat, 28 Feb 2009 00:04:34 +0000 (16:04 -0800)
committerSage Weil <sage@newdream.net>
Sat, 28 Feb 2009 00:04:48 +0000 (16:04 -0800)
src/ceph-daemons
src/sample.startup.conf

index dbaff843bad97669188ab4abffe4dee5bac88175..c2d0fdd72c1819f48cc2d8f565d75298233cae40 100755 (executable)
@@ -53,27 +53,30 @@ stop_daemon() {
 
 ## command line options
 options=
-valgrind=
-localhost=
-debug=
-restartoncoredump=
-monaddr=
+
+dovalgrind=0
+docrun=1
 allhosts=0
+debug=0
+monaddr=
 
 while [[ $1 =~ '-' ]]; do     # FIXME: why not '^-'?
 case $1 in
     --valgrind)
-           valgrind=1
+           dovalgrind=1
            ;;
     --novalgrind)
-           valgrind=0
-           ;;
-    -l | --localhost )
-           localhost=1
+           dovalgrind=0
            ;;
     --allhosts)
            allhosts=1;
            ;;
+    --restart)
+           docrun=1
+           ;;
+    --norestart)
+           docrun=0
+           ;;
     -m )
            [ "$2" == "" ] && usage_exit
            options="$options $1"
@@ -138,22 +141,35 @@ for name in $what; do
     # extract name-specific options from $conf
     if [[ $name =~ "mon" ]]; then
        get_conf mon_path "" "mon path" $sections
-       cmd="$ssh $cd_path $CEPH_BIN/crun $valgrind $CEPH_BIN/cmon $ARGS $mon_path &"
+       cmd="$BINDIR/cmon $mon_path"
     fi
 
     if [[ $name =~ "mds" ]]; then
-       cmd="$ssh $cd_path $CEPH_BIN/crun $valgrind $CEPH_BIN/cmds $ARGS --conf_file $conf_file \
-                       $mon_addr_cmd &"
+       cmd="$BINDIR/cmds -c $conf_file $mon_addr_cmd"
     fi
 
     if [[ $name =~ "osd" ]]; then
        get_conf osd_data "" "osd data" $sections
        get_conf osd_journal "" "osd journal" $sections
        [ "$osd_journal" != "" ] && osd_journal_cmd="-j $osd_journal" || osd_journal_cmd=""
-       cmd="$ssh $cd_path $CEPH_BIN/crun $valgrind $CEPH_BIN/cosd $ARGS --conf_file $conf_file \
-                       $mon_addr_cmd $osd_data $osd_journal_cmd &"
+       cmd="$BINDIR/cosd -c $conf_file \
+                       $mon_addr_cmd $osd_data $osd_journal_cmd"
     fi
 
+    # build final command
+    wrap=""
+    runmode="-d"
+
+    get_conf_bool crun "$docrun" "restart on core dump" $sections
+    [[ $crun -eq 1 ]] && wrap="$BINDIR/crun"
+
+    get_conf_bool valgrind "$dovalgrind" "valgrind" $sections
+    [[ $valgrind -eq 1]] && wrap="$wrap valgrind"
+
+    [[ $wrap != "" ]] && runmode="-f &"
+
+    cmd="$ssh $wrap $cmd $runmode"
+
     case "$command" in
        start)
            echo Starting ceph $name on $host...
index 1f6287ff89de91ea88af72ad8705e32584d667db..cc5e29808df1a97af38cb45462c0ec1adf8227c1 100644 (file)
@@ -15,6 +15,7 @@
 ; global
 [global]
         conf file = ceph.conf
+       restart on core dump = true
 
 ; monitor
 [mon]