[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
07/18: services: network-manager: Await for NetworkManager to finish sta
From: |
guix-commits |
Subject: |
07/18: services: network-manager: Await for NetworkManager to finish starting up. |
Date: |
Fri, 10 Mar 2023 11:41:43 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit d04955972e42bd85ba6137625e09e9e31de52f72
Author: Bruno Victal <mirai@makinata.eu>
AuthorDate: Tue Mar 7 12:44:03 2023 +0000
services: network-manager: Await for NetworkManager to finish starting up.
This is similar to its NetworkManager-wait-online.service systemd
counterpart,
with the main difference being that we handle it all in 'networking symbol,
rather than
introduce a new 'networking-online symbol. (see discussion #47253)
As a result of this change, with opensmtpd-service-type as an example,
manual 'herd restart smtpd' after system bootups are no longer required
when opensmtpd is configured with a smtpd.conf containing non-loopback
interfaces.
(this issue is described in more detail at #60300)
Fixes <https://issues.guix.gnu.org/60300>.
* gnu/services/networking.scm (network-manager-shepherd-service): Await for
NetworkManager to finish starting up.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
gnu/services/networking.scm | 35 ++++++++++++++++++++++++-----------
1 file changed, 24 insertions(+), 11 deletions(-)
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 0ed467f9d8..7cf92dc8c4 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -1235,17 +1235,30 @@ project's documentation} for more information."
;; TODO: iwd? is deprecated and should be passed
;; with shepherd-requirement, remove later.
,@(if iwd? '(iwd) '())))
- (start #~(make-forkexec-constructor
- (list (string-append #$network-manager
- "/sbin/NetworkManager")
- (string-append "--config=" #$conf)
- "--no-daemon")
- #:environment-variables
- (list (string-append "NM_VPN_PLUGIN_DIR=" #$vpn
- "/lib/NetworkManager/VPN")
- ;; Override non-existent default users
- "NM_OPENVPN_USER="
- "NM_OPENVPN_GROUP=")))
+ (start
+ #~(lambda _
+ (let ((pid
+ (fork+exec-command
+ (list #$(file-append network-manager
+ "/sbin/NetworkManager")
+ (string-append "--config=" #$conf)
+ "--no-daemon")
+ #:environment-variables
+ (list (string-append "NM_VPN_PLUGIN_DIR=" #$vpn
+ "/lib/NetworkManager/VPN")
+ ;; Override non-existent default users
+ "NM_OPENVPN_USER="
+ "NM_OPENVPN_GROUP="))))
+ ;; XXX: Despite the "online" name, this doesn't guarantee
+ ;; WAN connectivity, it merely waits for NetworkManager
+ ;; to finish starting-up. This is required otherwise
+ ;; services will fail since the network interfaces be
+ ;; absent until NetworkManager finishes setting them up.
+ (system* #$(file-append network-manager "/bin/nm-online")
+ "--wait-for-startup" "--quiet")
+ ;; XXX: Finally, return the pid from running
+ ;; fork+exec-command to shepherd.
+ pid)))
(stop #~(make-kill-destructor)))))))
(define network-manager-service-type
- branch master updated (4f4e4abd3a -> f437b11180), guix-commits, 2023/03/10
- 02/18: services: network-manager: Add 'shepherd-requirement' field., guix-commits, 2023/03/10
- 04/18: services: connman: Use match-record and export accessors., guix-commits, 2023/03/10
- 07/18: services: network-manager: Await for NetworkManager to finish starting up.,
guix-commits <=
- 10/18: services: xorg: Deprecate 'screen-locker-service' procedure., guix-commits, 2023/03/10
- 11/18: doc: Sending-a-Patch-Series: Fix URL., guix-commits, 2023/03/10
- 03/18: services: network-manager: Deprecate 'iwd?' field., guix-commits, 2023/03/10
- 05/18: services: connman: Add 'shepherd-requirement' field., guix-commits, 2023/03/10
- 06/18: services: connman: Deprecate 'iwd?' field., guix-commits, 2023/03/10
- 01/18: build-system/gnu: Remove 'install-license-files' from '%dist-phases'., guix-commits, 2023/03/10
- 08/18: services: network-manager: Set service canonical-name to NetworkManager., guix-commits, 2023/03/10
- 09/18: services: connman: Set service canonical-name to connman., guix-commits, 2023/03/10
- 12/18: licenses: Add LPL 1.02 (Lucent Public Licence)., guix-commits, 2023/03/10
- 13/18: import: Add EUPL 1.1 to the SPDX license name converter., guix-commits, 2023/03/10