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 <[email protected]>
---
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
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 <[email protected]>
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
>