• # init

    Posté par . En réponse au message comment tuer des process fils automatiquement dans un script shell.... Évalué à 2.

    Il est en effet normal, sous Unix, que les processus "orphelins" soient récupéré par init, donc que leur ppid passe à 1.

    Un lien au hasard de google :
    http://www.unixgarden.com/index.php/programmation/programmation-systeme-processus-tubes-et-threads

    Sinon, pour ton kill, si tu connais le nom de proc1 et proc2, tu peux essayer de les tuer par nom et non pas par pid : pkill proc1 .
    Il y a toujours un risque : tuer des processus du meme nom (tu peux toujours verifier, avant de faire le kill, que le nom du processus et le pid (que tu as dans ta variable) concordent).
    Sinon, si j'ai bien compris, tu veux non pas tuer certains processus, mais detruire tous ceux lancés par toto.sh. Il suffit donc de tuer les processus dont le ppid est le pid de toto.sh. Toujours avec pkill (pratique pkill, mieux que killall) :

    pkill -P $$

    (où $$ est le PID du script en cours (toto.sh), et -P demande à pkill de rechercher par ppid)