Proposal for replacing Upstart with init.d script.
Change-Id: I22ad1faac713bb50f0b7ad3dde132363a6588723
diff --git a/tools/package/bin/onos-service b/tools/package/bin/onos-service
index 5cc2009..d14983e 100755
--- a/tools/package/bin/onos-service
+++ b/tools/package/bin/onos-service
@@ -50,4 +50,4 @@
fi
done
-exec ${ONOS_HOME}/apache-karaf-$KARAF_VERSION/bin/karaf $KARAF_ARGS
+exec ${ONOS_HOME}/apache-karaf-$KARAF_VERSION/bin/start $KARAF_ARGS
diff --git a/tools/package/init/onos.initd b/tools/package/init/onos.initd
new file mode 100755
index 0000000..7d67ccc
--- /dev/null
+++ b/tools/package/init/onos.initd
@@ -0,0 +1,58 @@
+#! /bin/bash
+# -----------------------------------------------------------------------------
+# init.d script to run ONOS.
+# -----------------------------------------------------------------------------
+
+start () {
+ # TODO check if ONOS is already running first
+
+ [ -f /opt/onos/options ] && . /opt/onos/options
+ ONOS_USER=${ONOS_USER:-root}
+
+ # Ensure that the environment is initialized
+ [ -d /opt/onos ] && mkdir /opt/onos/var 2>/dev/null && chown $ONOS_USER.$ONOS_USER /opt/onos/var
+ [ -d /opt/onos ] && mkdir /opt/onos/config 2>/dev/null && chown $ONOS_USER.$ONOS_USER /opt/onos/config
+ [ -d /opt/onos ] && [ ! -h /opt/onos/log ] \
+ && ln -s /opt/onos/karaf/data/log /opt/onos/log || :
+
+ [ -f /opt/onos/options ] && . /opt/onos/options
+ start-stop-daemon --signal INT --start --chuid ${ONOS_USER:-root} \
+ --exec /opt/onos/bin/onos-service -- ${ONOS_OPTS:-server} \
+ >/opt/onos/var/stdout.log 2>/opt/onos/var/stderr.log
+}
+
+stop () {
+ /opt/onos/karaf/bin/stop
+}
+
+restart () {
+ stop
+ start
+}
+
+status () {
+ /opt/onos/karaf/bin/status
+}
+
+case $1 in
+ start)
+ start
+ ;;
+ stop | force-stop)
+ stop
+ ;;
+ restart)
+ shift
+ restart "$@"
+ ;;
+ status)
+ status
+ exit $?
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|status}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/tools/test/bin/onos-install b/tools/test/bin/onos-install
index 139944e..ff4fb44 100755
--- a/tools/test/bin/onos-install
+++ b/tools/test/bin/onos-install
@@ -61,6 +61,7 @@
# Make a link to the log file directory and make a home for auxiliaries
ln -s $ONOS_INSTALL_DIR/$KARAF_DIST/data/log /opt/onos/log
+ ln -s $ONOS_INSTALL_DIR/$KARAF_DIST /opt/onos/karaf
mkdir $ONOS_INSTALL_DIR/var
mkdir $ONOS_INSTALL_DIR/config
@@ -70,6 +71,7 @@
# Install the upstart configuration file and setup options for debugging
[ -z "$nostart" ] && sudo cp $ONOS_INSTALL_DIR/init/onos.conf /etc/init/onos.conf
+ [ -z "$nostart" ] && sudo cp $ONOS_INSTALL_DIR/init/onos.initd /etc/init.d/onos
echo 'export ONOS_OPTS=debug' > $ONOS_INSTALL_DIR/options
# Setup correct user to run onos-service
diff --git a/tools/test/bin/onos-service b/tools/test/bin/onos-service
index 35764e6..64caa2c 100755
--- a/tools/test/bin/onos-service
+++ b/tools/test/bin/onos-service
@@ -43,7 +43,7 @@
# Execute the remote commands
for node in $nodes; do
- ssh $ONOS_USER@${node} "sudo ${2:-status} onos"
+ ssh $ONOS_USER@${node} "sudo /etc/init.d/onos ${2:-status}"
done
;;
*)