У меня есть сценарий perl, который выполняет другой сценарий с использованием канала:
$pid = open (OUTPUT, "my_script.pl 2>&1 |") || "";
if ($pid) {
while (<OUTPUT>) {
print;
}
close (OUTPUT);
}
my_script.pl
разветвляет другой дочерний процесс.Когда я сначала убиваю my_script.pl
, а затем уничтожаю его дочерний процесс (я убиваю процессы вручную, используя kill -9
), тогда my_script.pl
процесс перестает работать, и канал зависает.Есть идеи, как решить эту проблему?
Я не хочу сначала убивать дочерний процесс.