The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Q Hint (pipe fs)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: pipe, fs,  (найти похожие документы)
_ RU.UNIX (2:5077/15.22) _____________________________________________ RU.UNIX _ From : Anthony Solovjoff 2:5030/168 13 Aug 98 22:07:10 Subj : Q Hint ________________________________________________________________________________ Hi Andrew! 13 Aug 98, Andrew Kaminski writes to All: AK> Так почему пеpвый if из /etc/rc2 отpабатывает без пpоблем и tee AK> завеpшается а во втоpом if он болтается себе и пока его не убьеш rc2 AK> до конца не отpаботает ? Я конечно убpал это "| $LOGCMD" но может AK> пpичина в одном и томже ? До patcha этого там не было. Тут вроде все просто. Упростим: s1: === : # s2 2>&1 | tee $LOG exit 0 === s2: === : # while true do sleep 5 echo Hi! done & exit 0 === Итак. Происходит следующее шелл выполняет скрипт s1, встречает вызов s2, форкается дважды, делает pipe(), делает fdup() в обеих потомках, так, чтобы один конец трубы у одного потомка стал стандартным выходом, а другой конец трубы у другого потомка стандартным входом. И дальше родитель (выполняющий s1) ждет заврешения всех потомков, которые породил при исполнении s1 2>&1 | tee $LOG. Шелл, выполняющий s2 порождает из под себя цикл (или любую др. программу), эта программа наследует от шелла открытые декрипторы. И хотя там стоит & и шелл, выполняющий s2, завершается, порожденная им программа (цикл) продолжает держать свои вход/выход открытыми. Заметим, что ее выход является входом пайпа к tee. Итак канал к tee _не_ закрыт. tee _не_ получает EOF и не заврешается. Соответственно, мы видим висящий цикл, висящий tee, и первый шелл, который выполняет s1 и ждет завершения всех членов запущенной трубы. Уффф! \\ 0< (A) | --- GoldED 2.51.A1026 UNREG * Origin: The Clockwork Mailman, 7(812)174-1763, CM (2:5030/168)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру