[ovs-dev] [PATCH] rhel: Use PIDFile on forking systemd service files

Candido Campos Rivas ccamposr at redhat.com
Thu Feb 28 19:31:59 UTC 2019


hi,
 yes, if there are some expert in systemd, it'd be the best :)

I only can help passing you the  systemd doc cof that  recommends use this
option with the forking type :

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

.....

Type=

Configures the process start-up type for this service unit. One of simple,
exec, forking, oneshot, dbus, notify or idle:

   -

   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 service
   process, and the service manager will consider the unit started when the
   parent process exits. This is the behavior of traditional UNIX services. If
   this setting is used, it is recommended to also use the PIDFile= option,
   so that systemd can reliably identify the main process of the service.
   systemd will proceed with starting follow-up units as soon as the parent
   process exits.


....

PIDFile=

Takes a path referring to the PID file of the service. Usage of this option
is recommended for services where Type= is set to forking. The path
specified typically points to a file below /run/. If a relative path is
specified it is hence prefixed with /run/. The service manager will read
the PID of the main process of the service from this file after start-up of
the service. The service manager will not write to the file configured
here, although it will remove the file after the service has shut down if
it still exists. The PID file does not need to be owned by a privileged
user, but if it is owned by an unprivileged user additional safety
restrictions are enforced: the file may not be a symlink to a file owned by
a different user (neither directly nor indirectly), and the PID file must
refer to a process already belonging to the service.

BR's

On Thu, Feb 28, 2019 at 7:07 PM Ben Pfaff <blp at ovn.org> wrote:

> On Thu, Feb 28, 2019 at 06:27:46PM +0100, Timothy Redaelli wrote:
> > Currently, PIDFile is not used in systemd service files with
> > Type=forking. This means sometimes systemd fails to restart a daemon
> > that is killed (with SIGKILL) or that is crashed.
> >
> > This commit adds PIDFile to all systemd service file with Type=forking
> > in order to always have the correct PID to monitor.
> >
> > Reported-at: https://bugzilla.redhat.com/1653717
> > Reported-by: Candido Campos <ccamposr at redhat.com>
> >
> > Signed-off-by: Timothy Redaelli <tredaelli at redhat.com>
>
> Just as a note, I don't know systemd enough to review this, so someone
> else will have to review it.
>


More information about the dev mailing list