Re: [PATCH - rpcbind] Provide systemd unit files for rpcbind

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

My apologies for not getting to this sooner... 
A rough a couple of weeks... 
On 10/12/2016 02:01 AM, NeilBrown wrote:
> 
> 
> To encourage uniformity across distributions, provide
> systemd unit files.
> 
> If extra arguments are wanted for rpcbind, a drop-in should be used
> to set the Environment= or read and EnvironmentFile=
> 
> As the "run" directory could be /run or /var/run we RequiresMountsFor
> both of these.
Talking with the systemd folks they strongly sugguest we just
use /run (not /var/run) and drop the RequiresMountsFor.

> 
> rpcbind.service pulls in rpcbind.socket so that the listening sockets
> chosen there will always be used.
> 
> Signed-off-by: NeilBrown <neilb@xxxxxxxx>
> ---
>  .gitignore                 |  1 +
>  Makefile.am                |  4 ++++
>  configure.ac               |  7 ++++++-
>  systemd/rpcbind.service.in | 17 +++++++++++++++++
>  systemd/rpcbind.socket     | 19 +++++++++++++++++++
>  5 files changed, 47 insertions(+), 1 deletion(-)
>  create mode 100644 systemd/rpcbind.service.in
>  create mode 100644 systemd/rpcbind.socket
> 
> hi,
>  these are based on the unit files in use a SUSE, though I have made a
>  few "improvements".
>  If anyone has differences in their distros that you think we should
>  have in mainline, I'd love to hear about it.
> 
> Thanks,
> NeilBrown
> 
> 
> diff --git a/.gitignore b/.gitignore
> index 321dff64a57d..a8f1fed2acb6 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -27,3 +27,4 @@ rpcbind
>  rpcinfo
>  # cscope database files
>  cscope.*
> +systemd/rpcbind.service
> diff --git a/Makefile.am b/Makefile.am
> index 5ec8cd66b689..43c27100ceae 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -50,6 +50,10 @@ if SYSTEMD
>  AM_CPPFLAGS += $(SYSTEMD_CFLAGS) -DSYSTEMD
>  
>  rpcbind_LDADD += $(SYSTEMD_LIBS)
> +
> +systemdsystemunit_DATA = \
> +	systemd/rpcbind.service \
> +	systemd/rpcbind.socket
>  endif
>  
>  rpcinfo_SOURCES =       src/rpcinfo.c
> diff --git a/configure.ac b/configure.ac
> index af4b74b31c9a..0892d8246a12 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -61,4 +61,9 @@ AC_SEARCH_LIBS([pthread_create], [pthread])
>  
>  AC_CHECK_HEADERS([nss.h rpcsvc/mount.h])
>  
> -AC_OUTPUT([Makefile])
> +# make bindir available for substitution in config file
> +# 2 "evals" needed to expand variable names
> +AC_SUBST([_bindir])
> +AC_CONFIG_COMMANDS_PRE([eval eval _bindir=$bindir])
> +
> +AC_OUTPUT([Makefile systemd/rpcbind.service])
> diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in
> new file mode 100644
> index 000000000000..4706b5a77abf
> --- /dev/null
> +++ b/systemd/rpcbind.service.in
> @@ -0,0 +1,17 @@
> +[Unit]
> +Description=RPC Bind
> +Documentation=man:rpcbind(8)
> +DefaultDependencies=no
> +RequiresMountsFor=/var/run /run
> +# Make sure we use the IP addresses listed for
> +# rpcbind.socket, no matter how this unit is started.
> +Wants=rpcbind.socket
> +After=rpcbind.socket
> +
> +[Service]
> +Type=notify
> +# distro can provide a drop-in adding EnvironmentFile=-/??? if needed.
> +ExecStart=@_bindir@/rpcbind $RPCBIND_OPTIONS -w -f
This macro puts rpcbind in /usr/bin, but in the Red Hat
distros rpcbind lives /usr/sbin. I could easily patch
it to do the right thing... but is this a typo or does 
rpcbind live in /usr/bin in other distros? 

steved.


> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/systemd/rpcbind.socket b/systemd/rpcbind.socket
> new file mode 100644
> index 000000000000..7204c97efa6f
> --- /dev/null
> +++ b/systemd/rpcbind.socket
> @@ -0,0 +1,19 @@
> +[Unit]
> +Description=RPCbind Server Activation Socket
> +DefaultDependencies=no
> +RequiresMountsFor=/var/run /run
> +Wants=rpcbind.target
> +Before=rpcbind.target
> +
> +[Socket]
> +ListenStream=/var/run/rpcbind.sock
> +
> +# RPC netconfig can't handle ipv6/ipv4 dual sockets
> +BindIPv6Only=ipv6-only
> +ListenStream=0.0.0.0:111
> +ListenDatagram=0.0.0.0:111
> +ListenStream=[::]:111
> +ListenDatagram=[::]:111
> +
> +[Install]
> +WantedBy=sockets.target
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux