On Wed, 2015-09-02 at 15:52 +0200, Andreas Müller wrote:
> Hi
> 
> since a while shutting down my embedded device has a delay of 10s. I
> see:
> 
> [  OK  ] Stopped D-Bus System Message Bus.
> [  OK  ] Stopped Network Manager.
> [  OK  ] Stopped Kernel Logging Service.
> ...
> [  OK  ] Reached target Shutdown.
> [ 5778.268022] systemd-shutdown[1]: Sending SIGTERM to remaining
> processes...
> [ 5778.293797] systemd-journald[131]: Received SIGTERM from PID 1
> (systemd-shutdow).
> [ 5788.305137] systemd-shutdown[1]: Sending SIGKILL to remaining
> processes...
> [ 5788.339046] systemd-shutdown[1]: Sending SIGKILL to PID 11829
> (dhclient).
> ...
> 
> From this log I gather:
> 
> 1) networkmanager does not stop dhclient (although it started it -
> right?)
> 2) dhclient does not catch SIGTERM
> 
> Further investigation lead to the following commit in dhcp [1]
> 
> commit e9326fd0f4561db5496f18523da15612213bd1b4
> Author: Shawn Routhier <[email protected]>
> Date:   Wed Jul 2 08:49:19 2014 -0700
> 
>     [master] Add define to disable gentle shutodwn by default
> 
>     Add a define to disable the gentle shutdown feature by default.
>     The feature has some effects (recover-wait in failvoer pairs)
>     and release in clients that are always desired.  We plan to
>     revisit this in order to make it easier to use but with the
>     define it can be enabled if necessary.
> 
> My current conclusion:
> 
> networkmanager does not stop dhclient during shutdown (but it
> should?). This was wiped away by systemd killing dhclient by sending
> SIGTERM. Now that dhclient ignores SIGTERM, systemd waits 10s and
> kills dhclient by SIGKILL which is the delay I see.
> 
> FWIW: I worked around the shutdown delay by
> 
> #define ENABLE_GENTLE_SHUTDOWN
> 
> in dhcp but I think this is a workaround so I ask here.
> 
> What do experts think?

Hi,


On shutdown, NetworkManager receives SIGTERM from systemd.
NM does in that moment not know the reason for the shutdown.
It is indistinguishable from a `systemctl restart`,
or `systemctl start`, or `systemd isolate rescue.target`...

NetworkManager always leaves your ethernet interfaces up when it
terminates. (Wifi actually gets disconnected, but I think that is
rather a bug than a feature).
It does so, because it does not want to break your network
connectivity.


Isn't this a bug in dhclient?


Not a real solution, but you could use the internal DHCP client,
by setting
  [main]
  dhcp=internal
in NetworkManager.conf.


Thomas

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to