| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > убить порожденный процесс кнопкой cancel |
| Автор: spin2 6.7.2006, 18:25 | ||||
Есть две кнопки - go и cancel. По кнопке go вызывается внешний скрипт:
Нужно сделать так, чтобы по кнопке Cancel тот внешний скрипт бы прерывал свою работу, то есть сделать kill дочернего процесса. Делаю так:
Переменная $pid глобальная. Почему-то кнопка Cancel не отрабатывает. Что нужно исправить? |
| Автор: sharq 9.7.2006, 14:31 | ||
spin2, пробуй убить дочерний прочесс через вызов системной команды:
И проверь у тебя $pid точно есть! |
| Автор: spin2 18.7.2006, 16:21 |
| Да, $pid есть... Стало ясно, что проблема в логике программы. Суть примерно такая: в обработчике Go вызывается внешний скрипт отдельным процессом, этот скрипт записывает результаты в файл. Если все ок, то нужно дождаться окончания этого процесса, а потом считать файл, обработать его и закинуть результат в div'ы. И тут возникает противоречие: с одной стороны, родитель должен ждать, пока ребенок закинет результат в файл. А с другой стороны - ему нужно иметь возможность убить ребенка при необходимости по Cancel. Поэтому я в затруднении. Может кто-нибудь что-то посоветовать? |
| Автор: Nab 18.7.2006, 16:46 |
| AJAX или два фрейма... это самое простое, но конечно pid прийдется сохранять гдето в сессии или куках А если все делать правильно..... то нельзя, и не рекомендуется. Это противоречит концепции протокола HTTP. Нужно попробовать по другому организовать логику работы системы. |