denis94 0 Zgłoś post Napisano Styczeń 3, 2011 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
crazyluki 114 Zgłoś post Napisano Styczeń 3, 2011 To ile wykonuje się ten skrypt ? parę sekund ? jak parę godzin to nie ma sensu uruchamiać go co 5 minut. zobacz taki skrypt crona wget -O /dev/null http://adresdoTWojegoskryptu.pl/skrypt.php Udostępnij ten post Link to postu Udostępnij na innych stronach
denis94 0 Zgłoś post Napisano Styczeń 3, 2011 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
crazyluki 114 Zgłoś post Napisano Styczeń 3, 2011 Nie wiem w sumie czy nie powinno być wget http://adresdoTWojeg...u.pl/skrypt.php -O /dev/null Udostępnij ten post Link to postu Udostępnij na innych stronach
Miłosz 2311 Zgłoś post Napisano Styczeń 4, 2011 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
kafi 2425 Zgłoś post Napisano Styczeń 4, 2011 /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
denis94 0 Zgłoś post Napisano Styczeń 4, 2011 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
Miłosz 2311 Zgłoś post Napisano Styczeń 4, 2011 spróbuj wstawić na początku skryptu set_time_limit() Udostępnij ten post Link to postu Udostępnij na innych stronach
denis94 0 Zgłoś post Napisano Styczeń 5, 2011 Dzięki ustawiłem limit, dwa dni i narazie wszystko jest ok Udostępnij ten post Link to postu Udostępnij na innych stronach