プロセスは main 関数から戻る、終了インターフェースを呼ぶ、シグナルで終了させられる、という方法で終わります。カーネルは大半のリソースを解放しますが、親が終了情報を回収するまで親子間の記録は続きます。