diff --git a/onos.sh b/onos.sh
index 869be44..6b17a5b 100755
--- a/onos.sh
+++ b/onos.sh
@@ -737,11 +737,7 @@
 
 function rc-coord {
   case "$1" in
-    start)
-      stop-coord
-      start-coord
-      ;;
-    startifdown)
+    start*) # <- start, startifdown
       local n=`pgrep -f obj.${RAMCLOUD_BRANCH}/coordinator | wc -l`
       if [ $n == 0 ]; then
         start-coord
@@ -756,6 +752,10 @@
       stop-backend
       del-coord-info
       ;;
+    re*)   # <- restart
+      stop-coord
+      start-coord
+      ;;
     stat*) # <- status
       local n=`pgrep -f obj.${RAMCLOUD_BRANCH}/coordinator | wc -l`
       echo "$n RAMCloud coordinator running"
@@ -867,11 +867,7 @@
 ### Functions related to RAMCloud server
 function rc-server {
   case "$1" in
-    start)
-      stop-server
-      start-server
-      ;;
-    startifdown)
+    start*) # <- start, startifdown
       local n=`pgrep -f ${RAMCLOUD_HOME}/obj.${RAMCLOUD_BRANCH}/server | wc -l`
       if [ $n == 0 ]; then
         start-server
@@ -886,6 +882,10 @@
       stop-server
       del-server-backup
       ;;
+    re*)   # <- restart
+      stop-server
+      start-server
+      ;;
     stat*) # <- status
       n=`pgrep -f ${RAMCLOUD_HOME}/obj.${RAMCLOUD_BRANCH}/server | wc -l`
       echo "$n RAMCloud server running"
@@ -981,14 +981,7 @@
   JAVA_CP="${JAVA_CP}:${ONOS_HOME}/target/classes"
 
   case "$1" in
-    start)
-      stop-onos
-      start-onos
-      ;;
-    startnokill)
-      start-onos
-      ;;
-    startifdown)
+    start*) # <- start, startnokill, startifdown
       n=`jps -l | grep "${MAIN_CLASS}" | wc -l`
       if [ $n == 0 ]; then
         start-onos
@@ -996,9 +989,16 @@
         echo "$n instance of onos running"
       fi
       ;;
+    unchecked-start)
+      start-onos
+      ;;
     stop)
       stop-onos
       ;;
+    re*)   # <- restart
+      stop-onos
+      start-onos
+      ;;
     stat*) # <- status
       n=`jps -l | grep "${MAIN_CLASS}" | wc -l`
       echo "$n instance of onos running"
