Один из способов заключается в том, чтобы родительский / управляющий процесс запускал все остальные процессы как дочерние. Когда любой ребенок умирает, родитель получит SIGCHLD
и сможет обрабатывать общую память / ресурсы в здравом порядке.
PostgreSQL следует этому шаблону проектирования со своими postmaster и рабочими процессами.
Обратите внимание, что в большинстве систем Unix мьютексы не будут изменяться / разблокироваться ОС во время остановки процесса. Семафоры предлагают функцию UNDO, но они по общему признанию намного тяжелее мьютексов. YMMV.