V praxi jsem se setkal s potřebou ukončit proces jež pid je známo v četně všech jeho potomků. Prozkoumal jsem všechny dostupné přiakzy a zjistil že žádný z nich tuto možnost neposkytuje. Ve svých skriptech proto používám jednoduchou funkci která toto umí. Ta vychází z toho, že sice nemohu zjistit všechny potomky procesu, ale mohu zjistit všechny potomky v první generaci. Rekurzivně pak procházím potomky těchto potomků. Výsledný kód je velmi jednoduchý.
#!/bin/bash
…
# Killing process with all it's children.
function killtree() {
local -r parent=$1
local -r children=$(pgrep -P $parent)
kill -s KILL $parent
for child in $children; do
killtree $child
done
} #killtree()