Subject: [bug#76262] [PATCH 2/3] services: Use ‘spawn-command’ instead of ‘fork’ + ‘waitpid’.

From: Ludovic Courtès <[email-masked]>
Date: Wed, 19 Feb 2025 22:10:29 +0100

Ludovic Courtès <[email-masked]> skribis:

> This is more concise and more robust: these ‘waitpid’ calls would
> compete with those made by shepherd’s event loop upon SIGCHLD, and they
> could hang forever.
>
> * gnu/services/databases.scm (postgresql-role-shepherd-service): Use
> ‘spawn-command’ instead of ‘fork+exec-command’ followed by ‘waitpid’.
> * gnu/services/networking.scm (dhcp-client-shepherd-service): Change
> ‘start’ to use ‘spawn-command’ instead of ‘fork+exec-command’ and
> * gnu/services/web.scm (patchwork-django-admin-gexp): Use
> ‘spawn-command’ instead of ‘primitive-fork’ + ‘waitpid’.
>
> Change-Id: I449290bfa46f8600e6ccdb5a6da990ad0cb7948c

Concrete manifestation of the bug with ‘dhcp-client-service-type’:

  https://issues.guix.gnu.org/76315

Ludo’.