php failed to open stream: Too many open files
Paweł Muszyński
pmuch w zamek.szczecin.pl
Sob, 29 Sie 2009, 15:34:56 CEST
Miesiu pisze:
> Dnia 29-08-2009 o godz. 14:34 Paweł Muszyński napisał(a):
>>> skrypt w php jest odpalany z konsoli (docelowo z crona - tak mi pasuje).
>>> Skrypt tuz przed końcem rekurencyjnie odpala sam siebie - przez exec
>>> lub system do wyboru - u mnie jedno i drugie działa tak samo.
>>>
>>> exec (" php -f plik.php parametr & "); - wrzuca w tło
>>>
>>> inkludów już nie ma - wkleiłem je w treść skryptu - ale to nic nie dało.
>>>
>>> każde kolejne rekurencyjne wywołanie niestety ale nadal trzyma otwarte
>>> pliki - czy raczej ich licznik.
>>>
>>> lsof -p pid-skryptu | wc -l
>>> (i tu licznik rośnie)
>>>
>>> apache'a nie uzywam do tego.
>
>> A ta nieskończona rekursywność to celowa jest?
>> Bo jak dla mnie to jakiś błąd koncepcyjny...
>
> Ma koniec - pasowało mi zrobić rekurencję - ale koniec ma.
>
> najchętniej to widzę - ale nie wiem jak to zrobić - aly proces potomny -
> nie był potomny ale niezalezny - wtedy licznik otwartych plików by
> zaczynał od zera.
>
>
No jeśli Ci się kończy licznik plików, to jak dla mnie ta rekurencja
jest mało przemyślana - jeśli schodzi Ci 1024 poziomy wgłąb. Rozwiążesz
problem z ilością otwartych plików, to będziesz miał problem z
wielkością stosu albo jeszcze z czymś innym
A jeśli i tak chcesz wywoływać ten skrypt z crona - nie możesz przerobić
algorytmu tak, by był iteracyjny, i np. zapisywał na koniec parametr do
następnego wywołania do bazy? Wtedy kolejne odpalenie z crona na
początek łączyłoby się z bazą i sprawdzało parametr...
Nie wiem, co ten Twój program ma robić, ale czuję, że zabrnąłeś w jakąś
ślepą uliczkę.
--
Paweł Muszyński
Więcej informacji o liście dyskusyjnej pld-users-pl