Skip to main content
Version: 1.1.1

Init systems supports Systemd out of the box, however not all Linux distributions use Systemd. To use on a Linux distribution without Systemd requires a few extra steps.

Support for different init systems (service managers) is provided by a community repository, tedge-services. The following service definitions are currently supported (though check the community repository if you don't see your preferred init system in the list).

  • OpenRC
  • runit
  • s6-overlay
  • SysVinit
  • supervisord

You are also free to use any service manager to run how you want. Check out the init system reference guide to see how to create a configuration to interact with your preferred init system.


Contributions are welcome in the tedge-services repository to improve any of the services, or to add support for additional init systems.


You can install the service definitions using a convenient script which will auto detect the init system for you.

curl -fsSL | sh -s

However, if you know which init system you are using on your device, and would like to manually specify it, then you can use the following command:

curl -fsSL | sh -s -- supervisord

Alternative installation methods

In cases were you would not like to run the automatic install script, you can choose one to run the steps manually. This allows you more control over the process which can be useful if you are experiencing problems with the auto detection used in the install script.

Manual repository setup and installation

The software repositories used by the package managers can be configured using the setup scripts. These scripts are normally executed by the script in the installation section, however they can also be manually executed if you want more fine-grain control over the process.


If you are having problems setting any of the repositories, check out the Cloudsmith website where they have Set Me Up instructions in additional formats, e.g. manual configuration rather than via the setup.*.sh script.


The instructions require you to have the following tools installed.

  • bash
  • curl


Running with sudo

You will need to have sudo also installed if you want to run these instructions.

curl -1sLf '' | sudo bash

Running as root

These commands must be run as the root user.

curl -1sLf '' | bash

Installing and updating using a package manager

Once you have the repository setup, you can install the service definitions for your preferred init system.


sudo apt-get install tedge-openrc


sudo apt-get install tedge-runit


sudo apt-get install tedge-s6overlay


sudo apt-get install tedge-sysvinit


sudo apt-get install tedge-supervisord

After installing the supervisord definitions, you will have to make sure the supervisord configuration pulls in the services definitions. Below shows an example supervisord.conf file which imports all services definitions which were installed.

file: /etc/supervisord.conf
# ... other supervisord settings

files = /etc/supervisor/conf.d/*.conf

Install via tarball

You can force the script to install via the tarball instead of via a package manager.

To install the service definitions via the tarball run the following command:

curl -fsSL | sh -s -- --package-manager tarball

Or if you also want to manually specify the init system to install, then you can the following command:

curl -fsSL | sh -s -- supervisord --package-manager tarball