diff --git a/tools/package/init/README b/tools/package/init/README
new file mode 100644
index 0000000..22a80a8
--- /dev/null
+++ b/tools/package/init/README
@@ -0,0 +1,18 @@
+ONOS "service" configuration files
+
+In order to run ONOS as a "service," whose execution is managed
+by the OS, you can install an appropriate configuration/startup file.
+
+onos.initd:     startup file for SysV/init.d-based systems
+                usually installed as /etc/init.d/onos
+
+onos.conf:      configuration for upstart-based systems
+                usually installed as /etc/init/onos.conf
+
+onos.service:   configuration for systemd-based systems
+                currently calls /etc/init.d/onos start
+                usually installed as /etc/systemd/system/onos.service
+
+The reason why onos.service currently calls /etc/init.d/onos
+is because the init.d script fixes permissions that are required
+by onos-service (such as /opt/onos/apps.)
diff --git a/tools/package/init/onos.conf b/tools/package/init/onos.conf
index ea9657e..d130afe 100644
--- a/tools/package/init/onos.conf
+++ b/tools/package/init/onos.conf
@@ -1,6 +1,8 @@
 description  "Open Network Operating System"
 author       "ON.Lab"
 
+# onos.conf: ONOS service configuration for upstart-based systems
+
 start on (net-device-up
           and local-filesystems
           and runlevel [2345])
@@ -15,13 +17,13 @@
 pre-start script
     [ -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
-    # TODO make karaf version configurable
-    [ -d /opt/onos ] && [ ! -h /opt/onos/log ] \
-         && ln -s /opt/onos/apache-karaf-3.0.5/data/log /opt/onos/log || :
+    ONOS_GROUP=${ONOS_GROUP:-$ONOS_USER}
+    # Fix permissions and symlinks
+    mkdir -p /opt/onos/var 2>/dev/null && chown $ONOS_USER:$ONOS_GROUP /opt/onos/var
+    mkdir -p /opt/onos/config 2>/dev/null && chown $ONOS_USER:$ONOS_GROUP /opt/onos/config
+    mkdir -p /opt/onos/apps 2>/dev/null && chown -R $ONOS_USER:$ONOS_GROUP /opt/onos/apps
+    [ ! -h $ONOS_OME/karaf ] && ln -s /opt/onos/apache-karaf* $ONOS_HOME/karaf || :
+    [ ! -h $ONOS_HOME/log ]  && ln -s $ONOS_HOME/karaf/data/log $ONOS_HOME/log || :
 end script
 
 pre-stop script
diff --git a/tools/package/init/onos.initd b/tools/package/init/onos.initd
index 524e172..1fecfcd 100755
--- a/tools/package/init/onos.initd
+++ b/tools/package/init/onos.initd
@@ -2,10 +2,9 @@
 # -----------------------------------------------------------------------------
 # init.d script to run ONOS
 #
-# This provides the core for an ONOS service in a variety of environments,
-# including init.d, upstart, and systemd. It can also be invoked directly.
-# If it is invoked by a boot system, environment variables will usually be
-# empty and the default values will be used.
+# This provides the core for an ONOS service in a variety of System V/init.d
+# compatible environments. It can also be invoked directly.
+# It reads configuration options from $ONOS_HOME/options
 # -----------------------------------------------------------------------------
 ### BEGIN INIT INFO
 # Provides:          onos
@@ -22,16 +21,19 @@
 [ -f $ONOS_HOME/options ] && . $ONOS_HOME/options
 ONOS_USER=${ONOS_USER:-root}
 ONOS_GROUP=${ONOS_GROUP:-$ONOS_USER}
-ONOS_OPTS=${ONOS_OPTS:-""}
+ONOS_OPTS=${ONOS_OPTS:-server}
 
 start () {
+    # Fix permissions and symlinks
     mkdir -p $ONOS_HOME/var 2>/dev/null && chown $ONOS_USER:$ONOS_GROUP $ONOS_HOME/var
     mkdir -p $ONOS_HOME/config 2>/dev/null && chown $ONOS_USER:$ONOS_GROUP $ONOS_HOME/config
-    [ ! -h $ONOS_HOME/log ]  && ln -s $ONOS_HOME/karaf/data/log $ONOS_HOME/log || :
+    mkdir -p $ONOS_HOME/apps 2>/dev/null && chown -R $ONOS_USER:$ONOS_GROUP $ONOS_HOME/apps
+    [ ! -h $ONOS_OME/karaf ] && ln -s /opt/onos/apache-karaf* $ONOS_HOME/karaf || :
+    [ ! -h $ONOS_HOME/log ] && ln -s $ONOS_HOME/karaf/data/log $ONOS_HOME/log || :
     # Start ONOS if it's not already running
     if ! status >/dev/null; then
         echo "Starting ONOS"
-        startonos $ONOS_HOME/bin/onos-service server $ONOS_OPTS
+        startonos $ONOS_HOME/bin/onos-service $ONOS_OPTS
     else
         echo "ONOS/karaf is already running"
     fi
@@ -47,21 +49,22 @@
         . /etc/init.d/functions && true
     fi
 
-    if type daemon | grep -i function >/dev/null 2>&1; then
+    if type daemon 2>/dev/null| grep -i function >/dev/null 2>&1; then
         # Use 'daemon' function if available
         # Shell metacharacters are passed as arguments to daemon
         daemon --user $ONOS_USER $cmd $* \
             \>$ONOS_HOME/var/stdout.log 2\>$ONOS_HOME/var/stderr.log \&
     elif type start-stop-daemon >/dev/null 2>&1; then
         # Use start-stop-daemon if available
-        # Warning! running as root can overwrite any linked log file
+        # Warning! Running as root can overwrite any linked log file.
         start-stop-daemon --signal INT --start --chuid $ONOS_USER \
             --background --exec $cmd -- $* \
             >$ONOS_HOME/var/stdout.log 2>$ONOS_HOME/var/stderr.log
     else
         # Fall back to using sudo
-        # Warning! running as root can overwrite any linked log file
-        sudo -E -n -u -b $ONOS_USER $cmd $* \
+        # Warning! Running as root can overwrite any linked log file.
+        # preserve Env, background, non-interactive, user $ONOS_USER
+        sudo -E -b -n -u $ONOS_USER $cmd $* \
             >$ONOS_HOME/var/stdout.log 2>$ONOS_HOME/var/stderr.log
     fi
 }
@@ -96,7 +99,7 @@
 case $1 in
     start)
         start
-	;;
+        ;;
     stop | force-stop)
         stop
         ;;
diff --git a/tools/package/init/onos.service b/tools/package/init/onos.service
new file mode 100644
index 0000000..bc9b890
--- /dev/null
+++ b/tools/package/init/onos.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Open Network Operating System
+After=network-online.target
+After=local-fs.target
+
+[Service]
+Type=forking
+ExecStart=/etc/init.d/onos start
+ExecStop=/etc/init.d/onos stop
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
