diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl index 81c246a5b2..65e3157859 100755 --- a/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl @@ -224,7 +224,17 @@ class SystemdUnit(): instance = None unit = self.unit - path = self._path_for_unit(unit) + if instance_unit_name is not None: + try: + # Try first with instance unit name. Systemd allows to create instance unit files + # e.g. `gnome-shell@wayland.service` which cause template unit file to be ignored + # for the instance for which instance unit file is present. In that case, there may + # not be any template file at all. + path = self._path_for_unit(instance_unit_name) + except SystemdUnitNotFoundError: + path = self._path_for_unit(unit) + else: + path = self._path_for_unit(unit) if path.is_symlink(): # ignore aliases