Aucun souci, sauf quand il faut tuer le processus. Oups, un zombie.
[...] dire que les processus Zombies sont une marque de mauvais système d'init me semble capilotracté.
Il n'est pas question ici de « systemd, le système d'initialisation », mais de « systemd, le gestionnaire de services ».
Lorsqu'on demande à systemd de lancer un service, le comportement par défaut est d'isoler le programme lancé ainsi que tous ses descendants dans un nouveau groupe de contrôle. De cette façon, le processus lancé et tous ses descendants sont clairement identifiables : ils sont tous dans le même groupe de contrôle.
Plus tard, lorsqu'on demande à systemd d'arrêter ce service, il zigouille tous les processus contenus dans le groupe de contrôle en question. C'est une différence importante avec le traditionnel SysVinit : lorsque systemd arrête un service, il ne se contente pas d'exécuter une commande (qui doit stopper des processus), il met à mort l'ensemble des processus contenus dans le groupe de contrôle. Autrement dit, systemd termine tous les processus que le service à engendré.
De cette façon, je ne vois pas comment il peut y avoir des processus zombie.
Remarque : la façon dont systemd arrête un service est évidemment paramétrable, voir les options ExecStop et KillMode.
[^] # Arrêter un service avec systemd
Posté par Sylvain Blandel . En réponse à la dépêche Spéciale Lennart Poettering : nouvelles versions de systemd et PulseAudio. Évalué à 6.
Il n'est pas question ici de « systemd, le système d'initialisation », mais de « systemd, le gestionnaire de services ».
Lorsqu'on demande à systemd de lancer un service, le comportement par défaut est d'isoler le programme lancé ainsi que tous ses descendants dans un nouveau groupe de contrôle. De cette façon, le processus lancé et tous ses descendants sont clairement identifiables : ils sont tous dans le même groupe de contrôle.
Plus tard, lorsqu'on demande à systemd d'arrêter ce service, il zigouille tous les processus contenus dans le groupe de contrôle en question. C'est une différence importante avec le traditionnel SysVinit : lorsque systemd arrête un service, il ne se contente pas d'exécuter une commande (qui doit stopper des processus), il met à mort l'ensemble des processus contenus dans le groupe de contrôle. Autrement dit, systemd termine tous les processus que le service à engendré.
De cette façon, je ne vois pas comment il peut y avoir des processus zombie.
Remarque : la façon dont systemd arrête un service est évidemment paramétrable, voir les options ExecStop et KillMode.