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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×