![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 30.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Robię skrypt w php, który ma mniej więcej taką budowę:
Chodzi o to, że jak odpalę skrypt w putty to wszystko działa dobrze, dopóki nie wyłączę putty. Wtedy skrypt przestaje działać. Chciałbym móc mieć możliwość odpalenia skryptu tak, aby działał w tle niezależnie od tego czy mam włączone putty czy nie. Próbowałem zrobić z tego demona i w "start" mojego skryptu znajdującego się w /etc/init.d/ podać: Kod start() { php "../../home/www/skrypt.php" } Wykonanie polecenia: Kod /etc/init.d/mojdemon start zadziałało w połowie, ponieważ skrypt zaczął się wykonywać, lecz czekał na zakończenie wykonywania skryptu php. Po wyłączeniu putty skrypt przestał działać. Czy ma ktoś jakieś propozycje jak to zrobić? Chodzi o to, żeby skrypt php był uruchomiony cały czas. System to gentoo. Ten post edytował keypax 8.09.2010, 23:44:10 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
najlatwiej uzyc programu screen i ominac problem (IMG:style_emoticons/default/winksmiley.jpg)
chyba optymalnym rozwiazaniem jest http://pear.php.net/package/System_Daemon http://kevin.vanzonneveld.net/techblog/art...daemons_in_php/ mozesz tez zjesc to widelcem jak na unixowca przystalo (IMG:style_emoticons/default/winksmiley.jpg) http://php.net/manual/en/function.pcntl-fork.php |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
łałć - za dużo piw wczoraj ;p... przyznaję, że nie zrozumiałem do końca pytania choć pod wskazanym linkiem znalazłbyś inne rozwiązanie... oczywiście skoro pracujesz na unix'ie i jeśli na pewno skrypt nie będzie na windowsie pracował to najprostsze rozwiązanie jest to co wskazał yevaud
mozesz tez zjesc to widelcem jak na unixowca przystalo (IMG:style_emoticons/default/winksmiley.jpg) http://php.net/manual/en/function.pcntl-fork.php ale schematycznie spróbuje może opisać jak ja to alternatywnie robię... na początku pliku dla bezpieczeństwa dobrze dać komendę ignore_user_abort [np. jakbyś chciał skrypt zastartować przeglądarką i zamknąć stronę lub inaczej skryptami np. emulującymi przeglądarkę...] w następnym etapie zanim cokolwiek zrobisz w tym skrypcie co ma być oderwanym procesem wyślij pustą dosłownie odpowiedź lub jakąkolwiek treść z nagłówkami zamykającymi połączenie [czyli minimum nagłówków do wysłania to header('Connection: close'); oraz liczba znaków treści wiadomości czyli np. header('Content-Length: '.ob_get_length());] oczywiście aby wcześniej te nagłówki wysłać musisz skorzystać z konstrukcji:
oczywiście aby kontrolować ten oderwany proces [by np. go zakończyć] musisz gdzieś sprawdzać panujące na zewnątrz warunki [czy to w bazie... lub czy istnieje dany plik itd.] - ale nie możesz tego oprzeć o sesję pracującą na plikach [chyba, ze masz ją na bazę...] w tym temacie co Ci wczoraj podałem o tym pisałem dokładnie w tym poście: http://forum.php.pl/index.php?s=&showt...st&p=704649 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 00:51 |