Если я интерпретирую формулировку «процесс и его подпроцессы», а также «ребенок / внук», возникает ситуация, когда у вас есть один родительский процесс, который запускает одного или нескольких дочерних процессов (или , дети бери внуки). Или любая их комбинация, но в любом случае каждый процесс, о котором мы говорим, использует тот же мьютекс * , который создается родителем.
Если это предположение верно, почему бы просто не использовать что-то смущающее простое, как:
#define MUTEXNAME "MzdhYTYzYzc3Mzk4ZDk1NDQ3MzI2MmUxYTAwNTdjMWU2MzJlZGE3Nw"
Если вам интересно, откуда это пришло, я сгенерировал его с помощью одной строки:
php -r "echo substr(base64_encode(sha1('some text')), 0, -2);"
Замените «некоторый текст» своим именем, текущей датой или какими-либо случайными словами, которые у вас на уме в данный момент. Вероятность того, что любое другое приложение в вашей системе когда-либо будет иметь такое же имя мьютекса, практически равна нулю.