7.134. systemd.bbclass

The systemd class provides support for recipes that install systemd unit files.

The functionality for this class is disabled unless you have "systemd" in DISTRO_FEATURES.

Under this class, the recipe or Makefile (i.e. whatever the recipe is calling during the do_install task) installs unit files into ${D}${systemd_unitdir}/system. If the unit files being installed go into packages other than the main package, you need to set SYSTEMD_PACKAGES in your recipe to identify the packages in which the files will be installed.

You should set SYSTEMD_SERVICE to the name of the service file. You should also use a package name override to indicate the package to which the value applies. If the value applies to the recipe's main package, use ${PN}. Here is an example from the connman recipe:

     SYSTEMD_SERVICE_${PN} = "connman.service"
        

Services are set up to start on boot automatically unless you have set SYSTEMD_AUTO_ENABLE to "disable".

For more information on systemd, see the "Selecting an Initialization Manager" section in the Yocto Project Development Manual.