Re: systemd m'a tuer

Top Page

Reply to this message
Author: Nicolas Morey-Chaisemartin
Date:  
To: guilde
Subject: Re: systemd m'a tuer
Salut,

On 6/23/22 22:22, Edgar Bonet wrote:
> Bonsoir la Guilde !
>
> Tout d'abord, je remercie tous ceux qui ont partagé leurs pistes, leurs
> idées. Pour ceux que ça intéresse, voici l'épilogue de cette histoire.
>
> Le plus simple a été de modifier le programme de calcul pour qu'il
> intercepte SIGTERM, et qu'il sauvegarde alors son état avant de
> quitter :
>
>     https://github.com/feellgood/FeeLLGood/commit/fd20170c13

>
> Pour envoyer ce signal j'ai créé, comme suggéré par plusieurs d'entre
> vous, une sorte de service « virtuel » géré par systemd :
>
> ------------------------------------------------------------------------
> # feellgood.service - Manage feeLLGood processes
> #
> # This service is intended to ensure that, when the system halts,
> # running instances of feeLLGood are noticed with SIGTERM and given some
> # time to save their state before being killed. The service does nothing
> # when started and calls /usr/local/bin/stop-feellgood when stopped.
>
> [Unit]
> Description=Manage feeLLGood processes
>
> [Service]
> Type=oneshot
> RemainAfterExit=yes
> #ExecStart is not set
> ExecStop=/usr/local/bin/stop-feellgood
> TimeoutStopSec=10
>
> [Install]
> WantedBy=multi-user.target
> ------------------------------------------------------------------------
>
> À noter que ce service ne fait rien quand il est lancé (ExecStart non
> renseigné), mais systemd va quand même le considérer actif (grâce à la
> ligne RemainAfterExit=yes). Comme indiqué dans systemd.service(5), ce
> type de fonctionnement est possible uniquement pour les services de type
> « oneshot ».


Tu peux même te passer de devoir lancer un service au démarrage:|
|

|[Unit] Description=Pre-Shutdown Processes ||||||DefaultDependencies=no||||Before=shutdown.target reboot.target halt.target |||||

||

|[Install]||||WantedBy=halt.target reboot.target shutdown.target |

|Et tu remets ta section [Service] ici mais en ExecStart au lieu de ExecStop. systemd va automatiquement lancer ce script avant un shotdown/halt/reboot (à partir du moment où le service est enable) Nicolas|

||
|

|||