У меня есть Perl-скрипт, который вызывает скрипт оболочки c.
что-то вроде
system($cmd)
$ cmd содержит некоторый scirpt c-shell, который выполняет следующее:
some_task1 &
set task1_id = $!
sleep 300s &
set task2_id = $!
while (`ps -p "$task1_id,$task2_id" | wc -l` > 2)
sleep 1m
end
# assume of the moment that task2 will finish first
kill -9 $task1_id
exit
Я ожидаю, что процесс task1_id будет завершен и сценарий c-shell завершит работу и вернет управление вызывающему сценарию perl один раз
sleep 300s
сделано.
однако, что на самом деле происходит после того, как
exit
элемент управления никогда не возвращается к вызывающему сценарию. Как убедиться, что вложенные скрипты действительно возвращаются?
Спасибо.