Skocz do zawartości
denis94

Problem z cronem

Polecane posty

Witam.

 

Posiadam serwer wirtualny którym mogę zarządzać poprzez directadmin.

Posiadam plik o nazwie cron.php który chciałbym otwierać co 5 minut. W pliku tym znajduje się tylko połączenie z bazą oraz zapytanie dodające rekord do bazy. Po otwarciu tego pliku w przeglądarce wszystko otwiera się momentalnie i rekord dodaje się.

 

Do uruchamiania pliku php poprzez crona używam

 

/usr/bin/lynx -dump /home/user/domains/domena/public_html/cron.php (komenda zalecana przez adminów hostingu)

 

Problem tkwi w tym, że gdy cron uruchomi się kilka razy po pewnym czasie przestaje się uruchamiać ponieważ na serwerze wisi bardzo dużo procesów z cały czas trwającymi poprzednimi otwarciami tego pliku php.

 

Nie wiem w jaki sposób się z tym uporać. Użycie flock mija się z celem gdy chcę uruchomić skrypt co 5 minut a proces wisi na serwerze kilka godzin. Dlaczego plik php nie wykona się w kilka sekund tylko tak blokuje crona?

 

Proszę o pomoc, nie umiem sobie z tym poradzić.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W pliku tym znajduje się tylko połączenie z bazą oraz zapytanie dodające rekord do bazy. No właśnie najdziwniejsze jest to, że taki pliczek php powinien być uruchomiony maksymalnie 5 sekund a jego proces nie zamyka się przez kilka godzin. Dodałem wpis crona z twoją komendą, zobaczę czy coś się zmieni.

 

Dzięki za zainteresowanie pozdrawiam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie musi być wyjścia do /dev/null. Niewykluczone, że jest problem ze skryptem i/lub konfiguracją serwera. W sumie timeout powinien go zatłuc jeśli skrypt nic nie robi.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
/usr/bin/lynx -dump /home/user/domains/domena/public_html/cron.php

Przecież to nie ma prawa poprawnie zadziałać... A jeśli nawet lynx łyknie taką ścieżkę, to od kiedy to on potrafił by niby przeparsować to jako php?

 

Jeśli już, to wypadało by mu podać adres http://domena.pl/cron.php

Ewentualnie, jeśli już się wybitnie uprzeć, to

 

cd /home/user/domains/domena/public_html/; php /home/user/domains/domena/public_html/cron.php

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ta komenda działać działa ale po kilku wywołaniach przestaje.

 

Tearz używam:

/usr/local/bin/php /home/user/domains/domena.pl/cron3.php

 

ale problem jest podobny. Po kilku odpaleniach skryptu przez crona potem nie odpala się zostawiając kilkanaście uruchomionych procesów.

 

Skoro timeout powinien zabijać skrypty nic nie robiące to czy w takim razie jest to wina złej konfiguracji serwera?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

spróbuj wstawić na początku skryptu set_time_limit()

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zaloguj się, aby skomentować

Będziesz mógł dodać komentarz po zalogowaniu się



Zaloguj się

×