Sometimes it’s useful to run ONOS as a service, particularly in production environments. This is where things get more complicated and specialized, depending on the operating system you’re running. This section describes how to configure ONOS to run as a service on typical Linux distributions.

When ONOS runs as a service, the OS will start it automatically as part of the boot process. On systemd and upstart-based systems, it should also automatically be restarted if it crashes. Once the service configuration files have been installed, you can typically start, stop, and check the status of ONOS using the service command.

Please not that this guide has different commands for different systems (i.e. Ubuntu, Debian, etc.) ensure you are running the correct command for your version, have fun.

Install the service files

sudo cp /opt/onos/init/onos.initd /etc/init.d/onos
sudo update-rc.d onos defaults

Note that on other, older, systems that use the /etc/init.d/ scripts but do not included the update-rc.d command you may need to manually create symbolic links in the appropriate rcX.d/ directories as desired, if you wish ONOS to start automatically.

sudo cp /opt/onos/init/onos.conf /etc/init/onos.conf
sudo cp /opt/onos/init/onos.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable onos

Configure ONOS Options

The ONOS services read configuration options from /opt/onos/options. If you have created an ONOS user (e.g. sdn), you should set ONOS_USER in /opt/onos/options to the user you wish ONOS to run as.

You can also specify ONOS_APPS as a default set of applications to activate.

# Optional: add any apps here that you wish to activate by default

Note that ONOS_APPS is an optional way of specifying default apps to activate on a node, but you can also activate apps dynamically across the entire ONOS cluster using the ONOS CLI, as described in Managing ONOS applications.

Start, stop, or check the status of the ONOS service

sudo service onos {start|stop|status}
sudo systemctl {start|stop|status|restart} onos.service