[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#67132: [Shepherd] Bogus value from PID file can prevent service from
From: |
Ludovic Courtès |
Subject: |
bug#67132: [Shepherd] Bogus value from PID file can prevent service from being stopped |
Date: |
Wed, 22 Nov 2023 11:16:37 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Ludovic Courtès <ludo@gnu.org> skribis:
> ‘terminate-process’ in (shepherd service) assumes that, once it has sent
> SIGKILL to a given PID, it eventually gets a SIGCHLD notification for
> that PID.
>
> Unfortunately there are corner cases where it doesn’t hold. Take PID 2:
>
> $ ps x 2
> PID TTY STAT TIME COMMAND
> 2 ? S 0:00 [kthreadd]
>
> That’s not a “real” process, so when you (kill 2 SIGKILL), nothing
> happens. Thus, ‘terminate-process’ never returns; the corresponding
> service stays in “stopping” state and you cannot halt your machine.
Fixed in Shepherd commit cc9c5c029534458ae547d78200b6b51f729654e3.
Ludo’.