| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > Как в скрипте запусить несколько процессов |
| Автор: study 1.11.2004, 11:02 |
| Народ, подскажите мне пожалуйста, как мне в скрипте запустить несколько, одновременно выполняющихся программ, и если какая-то затянулось, то убить её (программу). Если можно пример или ссылку, где можно почитать как это делается. Заранее спасибо. |
| Автор: chaos 1.11.2004, 12:31 | ||
| почитай про fork() Добавлено @ 12:38 Вот не большой пример
|
| Автор: study 1.11.2004, 12:57 |
| chaos, я попробовал сделать что-то с fork(), но я не разобрался, дай ссылку где про fork() написанно. Смотри, мне в цикле надо считывать строку из файла и запустить процесс. Я сделал все с помощью system(), всё хорошо работает, но слишком долго |
| Автор: chaos 1.11.2004, 13:28 | ||
а что за процессы? Ты наверное имеешь в виду другие программы, имена каторых ты читаешь в файли или чтьо? |
| Автор: study 1.11.2004, 14:12 |
| chaos запускается программа, а в файле входные данные к программе. Программа должна запускаться, например, 50 раз (зависит от строк в файле), из-за этого скрипт работает долго. Мне надо, чтобы я мог считать из файла, например, 10 строк и одновременно запустить 10 программ. |
| Автор: chaos 1.11.2004, 14:25 | ||
а че тебя не устраивает 10 раз вызвать system? |
| Автор: Nobody 1.11.2004, 16:00 | ||
study
А теперь замени жёстко заданный список программ на то, что ты читаешь из файла. |
| Автор: study 1.11.2004, 16:18 |
| Спасибо Nobody, попробую, а как мне узнать как завершилась программа? exec(), что-нибудь возвращает? И если можно подскажи, как мне убить прогу, если она не завершилась в течение 10 секунд. |
| Автор: chaos 1.11.2004, 16:23 | ||||
Я считаю что в данном случае system'а за глаза хватит, fork хорошо бы сгодился если бы надо было бы хапускать несколько копий одного приложения |
| Автор: study 1.11.2004, 16:26 | ||
потому что system() ждёт завершения программы, а мне нужно одновременно сразу несколько запустить, чтобы ускорить процесс. |
| Автор: study 3.11.2004, 13:18 |
| Nobody, подскажи мне. Как отслеживать, если выполнение exec() затянулось, то как мне завершить этот процесс. |
| Автор: lockdock 11.11.2004, 15:23 |
| man wait |