diff --git a/tools/package/bin/onos-service b/tools/package/bin/onos-service index 5cc20093ca..d14983e7a5 100755 --- a/tools/package/bin/onos-service +++ b/tools/package/bin/onos-service @@ -50,4 +50,4 @@ for app in ${SYS_APPS//,/ } ${ONOS_APPS//,/ }; do 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 0000000000..7d67ccc69f --- /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 139944e4e0..ff4fb44333 100755 --- a/tools/test/bin/onos-install +++ b/tools/test/bin/onos-install @@ -61,6 +61,7 @@ ssh $remote " # 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 @@ ssh $remote " # 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 35764e6f18..64caa2c72b 100755 --- a/tools/test/bin/onos-service +++ b/tools/test/bin/onos-service @@ -43,7 +43,7 @@ case $2 in # 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 ;; *)