On 23.11.2017 11:52, Clemens Gruber wrote:

Can you try this on a newer systemd version? Yours is pretty old.
I'm on systemd 235 (ArchLinux).
Maybe systemd 219 behaved differently for forking services?

This is does not help, as I understand from the latest systemd sources
- this is common systemd behaviour and it is not changed in new version.

I don't think nginx is doing anything wrong. This is working fine for
many people with and without systemd. There is even a similar example on
the nginx website:
https://www.nginx.com/resources/wiki/start/topics/examples/systemd/

From systemd developers point of view this is bug in nginx source code.
From nginx developers point of view this is may be bug in systemd code.

Systemd expects what parent nginx process exits only when pid file
with child process pid already exists.

https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=

Type=

If set to forking, it is expected that the process configured with ExecStart= will call fork() as part of its start-up. The parent process is expected to exit when start-up is complete and all communication channels are set up. The child continues to run as the main daemon process. This is the behavior of traditional UNIX daemons. If this setting is used, it is recommended to also use the PIDFile= option, so that systemd can identify the main process of the daemon. systemd will proceed with starting follow-up units as soon as the parent process exits.

--
Best regards,
 Gena
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to