#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. Я предлагаю вам опубликовать ответ на свой собственный вопрос.