[systemd-devel] [PATCH] rpcbind.service: Not pulling the rpcbind.target

Uoti Urpala uoti.urpala at pp1.inet.fi
Thu Dec 14 17:48:12 UTC 2017


On Thu, 2017-12-14 at 12:05 -0500, Steve Dickson wrote:
> According to systemd.special(7) manpage:
> 
> rpcbind.target
>     The portmapper/rpcbind pulls in this target and orders itself
> before it, to indicate its availability. systemd automatically adds
> dependencies of type After= for this target unit to all SysV init
> script service units with an LSB header referring to the "$portmap"
> facility.


> diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in
> index f8cfa9f..2b49c24 100644
> --- a/systemd/rpcbind.service.in
> +++ b/systemd/rpcbind.service.in
> @@ -6,8 +6,8 @@ RequiresMountsFor=@statedir@
>  
>  # Make sure we use the IP addresses listed for
>  # rpcbind.socket, no matter how this unit is started.
> -Wants=rpcbind.socket
> -After=rpcbind.socket
> +Wants=rpcbind.socket rpcbind.target
> +After=rpcbind.socket rpcbind.target

Is this needed when the service has socket activation support? If the
only interaction with it is through the socket, it shouldn't matter
even if the service is not actually up yet - clients can already open
connections to the socket regardless.

And regardless, that "After" for rpcbind.target seems backwards.
Shouldn't it be "Before", so that the target being up signals that the
service has already been started?

Not directly related, but if that comment is accurate and the socket
should be used "no matter what", perhaps that should be "Requires"
instead of "Wants" so that if the socket could not be opened for some
reason, the service fails instead of starting without socket
activation?



More information about the systemd-devel mailing list