Я нашел ответ в разделе Управление обработкой сигналов для демонов, которые fork() очень полезно для того, что я делаю. Я не уверен, как решить
«Поэтому вам нужно будет установить любую обработку сигналов в выполняемом процессе при его запуске»
Я не контролирую процесс, который запускается. Есть ли способ заставить некоторые дескрипторы сигналов на exec
ed от родителя форка?
Изменить:{
Я пишу модуль Perl, который отслеживает длительные процессы. Вместо
system(<long-running cmd>);
ты бы использовал
my_system(<ID>, <long-running cmd>);
Я создаю файл блокировки для <ID>
и не допускаю другого вызова my_system(<ID>...)
, если в данный момент выполняется файл с совпадающим идентификатором.
Родительский fork/execs <long-running cmd>
находится в процессе очистки файла блокировки, когда он завершается. Я бы хотел, чтобы дочерний элемент был самодостаточным, чтобы родитель мог выйти (или чтобы дочерний элемент мог позаботиться о себе, если родитель получит kill -9
).
}