Потомок Signal запускается с posix_spawn при выходе родительского элемента

#linux #process #signals #posix #glibc

#linux #процесс #сигналы #posix #glibc

Вопрос:

Процессы, запущенные с помощью fork(), могут запрашивать сигнализацию при выходе их родительского элемента, используя prctl(PR_SET_PDEATHSIG, SIGHUP).

Как я могу сделать то же самое при использовании posix_spawn для запуска двоичного файла, который я не могу изменить?

РЕДАКТИРОВАТЬ: одним из обходных путей является то, что posix_spawn использует тот же двоичный файл, что и родительский, и передает ему дочерний двоичный файл и аргументы в argv. И в main вызовите prctl, а затем вызовите execv с остальной частью массива argv.

Комментарии:

1. Что происходит, когда вы пытаетесь сделать то же самое?

2. prctl(PR_SET_PDEATHSIG) предназначен для вызова в дочернем элементе, и я не могу управлять дочерним элементом, это двоичный файл дистрибутива (я должен был упомянуть об этом).

3. Ваше предложение о двоичном файле «chained exec», либо автономной утилите, либо вашем собственном образе процесса с другой логикой, main как вы заметили, является отличным подходом, поскольку вы хотите, чтобы атрибут процесса, специфичный для Linux, устанавливался перед вызовом создания процесса POSIX. Я предлагаю вам опубликовать ответ на свой собственный вопрос.