diff mbox series

[nfs-utils] systemd/rpc-statd.service - add IgnoreOnIsolate=yes

Message ID 87bm69q2os.fsf@notabene.neil.brown.name (mailing list archive)
State New, archived
Headers show
Series [nfs-utils] systemd/rpc-statd.service - add IgnoreOnIsolate=yes | expand

Commit Message

NeilBrown Nov. 28, 2018, 3:52 a.m. UTC
If you run
  systemctl isolate multi-user.target
then all services not needed by multi-user.target are stopped.
This currently includes rpc-statd, which is a problem.

Systemd doesn't know that rpc-statd.service is needed by
multi-user.target, or more accurately nfs-client.target, because
sometimes it isn't.
It is started dynamically by mount.nfs when a v3 or v2 filesystem
is mounted (not when v4 is mounted) - so systemd doesn't see the connection.

mount units default to IgnoreOnIsolate=yes, as mounts are expected to be
left mounted when you run "systemctl isolate ....".  As rpc-statd.service
is started by a mount, and needed for some mounts, it makes sense for it
to declare IgnoreOnIsolate=yes too.
With this declaration in place rpc.statd remains running when
  systemctl isolate multi-user.target
is run.

Signed-off-by: NeilBrown <neilb@suse.com>
---
 systemd/rpc-statd.service | 1 +
 1 file changed, 1 insertion(+)

Comments

Steve Dickson Nov. 29, 2018, 7:36 p.m. UTC | #1
On 11/27/18 10:52 PM, NeilBrown wrote:
> If you run
>   systemctl isolate multi-user.target
> then all services not needed by multi-user.target are stopped.
> This currently includes rpc-statd, which is a problem.
> 
> Systemd doesn't know that rpc-statd.service is needed by
> multi-user.target, or more accurately nfs-client.target, because
> sometimes it isn't.
> It is started dynamically by mount.nfs when a v3 or v2 filesystem
> is mounted (not when v4 is mounted) - so systemd doesn't see the connection.
> 
> mount units default to IgnoreOnIsolate=yes, as mounts are expected to be
> left mounted when you run "systemctl isolate ....".  As rpc-statd.service
> is started by a mount, and needed for some mounts, it makes sense for it
> to declare IgnoreOnIsolate=yes too.
> With this declaration in place rpc.statd remains running when
>   systemctl isolate multi-user.target
> is run.
> 
> Signed-off-by: NeilBrown <neilb@suse.com>
Committed....

steved.

> ---
>  systemd/rpc-statd.service | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/systemd/rpc-statd.service b/systemd/rpc-statd.service
> index f41ae2084f3c..1f4e6a8b92ab 100644
> --- a/systemd/rpc-statd.service
> +++ b/systemd/rpc-statd.service
> @@ -7,6 +7,7 @@ Wants=network-online.target
>  After=network-online.target nss-lookup.target rpcbind.socket
>  
>  PartOf=nfs-utils.service
> +IgnoreOnIsolate=yes
>  
>  [Service]
>  Environment=RPC_STATD_NO_NOTIFY=1
> -- 2.14.0.rc0.dirty
>
diff mbox series

Patch

diff --git a/systemd/rpc-statd.service b/systemd/rpc-statd.service
index f41ae2084f3c..1f4e6a8b92ab 100644
--- a/systemd/rpc-statd.service
+++ b/systemd/rpc-statd.service
@@ -7,6 +7,7 @@  Wants=network-online.target
 After=network-online.target nss-lookup.target rpcbind.socket
 
 PartOf=nfs-utils.service
+IgnoreOnIsolate=yes
 
 [Service]
 Environment=RPC_STATD_NO_NOTIFY=1