[systemd-devel] [PATCH] service: do not apply SysV ordering to native services

Andrey Borzenkov arvidjaar at gmail.com
Thu Mar 24 10:15:10 PDT 2011


On Thu, Mar 24, 2011 at 7:51 PM, Michal Schmidt <mschmidt at redhat.com> wrote:
> In Fedora udev-retry.service exists both as a native unit and as a
> legacy SysV service. The ordering inferred from the rc.d symlink farm is
> being incorrectly applied to the native unit:
>

Then something is fishy. Native unit hides SysV script completely ...
or at least is supposed to.
>  #ifdef HAVE_SYSV_COMPAT
>         /* Load a classic init script as a fallback, if we couldn't find anything */

So it implies native unit was not found for whatever reasons. This
looks like a real bug that has to be fixed.

Could you paste systemctl dump somewhere? Without your patch ...

> -        if (u->meta.load_state == UNIT_STUB)
> +        if (u->meta.load_state == UNIT_STUB) {
>                 if ((r = service_load_sysv(s)) < 0)
>                         return r;
> +        } else
> +                /* It is native. Since we may have found a legacy service of
> +                 * the same name in service_enumerate() earlier, clear the SysV
> +                 * priority now to prevent polluting the unit with SysV
> +                 * ordering dependencies. */
> +                s->sysv_start_priority = -1;
>  #endif
>
>         /* Still nothing found? Then let's give up */
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>


More information about the systemd-devel mailing list