[CentOS] systemd

Wed Jan 9 17:00:31 UTC 2019
Simon Matter <simon.matter at invoca.ch>

> On Wed, Jan 09, 2019 at 10:43:38AM -0500, Steve Clark wrote:
>> I am trying to understand what After= means in a unit file. Does it
>> mean after the specified target is up and operational or only that
>> the target has been started?
>>
>> I have something that needs postgres but postgres needs to be
>> operational not just started. Sometimes it can take a bit for
>> postgres to become operational.
>
> I believe that the postgresql service has Type=notify in it's service
> definition, which means that it will notify systemd when it is
> operational.  This means that if you have a service that has
> After=postgresql.service, systemd should wait until after the
> postgresql service notifies systemd that it is operational before your
> service will be started.
>
> If your service is starting and unable to connect to postgresql, then
> I would say that's a bug in postgresql -- it shouldn't be notifying
> systemd that it is operational until it actually is.

This is, in fact, one of the points why I'm very unhappy with systemd and
the way it is implemented here and most likely in most distributions.

Maybe things _could_ be done the right way with systemd, but it doesn't
happen because it quickly starts to be very complex and it's a lot of work
to do it for a complete distribution. It just doesn't happen - or at least
did not happen in all the years since its introduction.

In this example, PG gets just started with "pg_ctl start" and that's it.

Regards,
Simon