Skocz do zawartości
Desavil

Uruchamianie procesów funkcją system() a restart PHP-FPM

Polecane posty

Witam.

 

Uruchamiam na swoim serwerze pewne procesy w tle za pomocą nginx + php-fpm, najzwyczajniej funkcją system() lub exec(). Problem polega na tym, że jak zrestartuję php-fpm (np. w wyniku aktualizacji) to wszystkie procesy uruchomione za pomocą w/w funkcji są automatycznie zabijane.

 

Czy istnieje jakiś sposób na uruchamianie ich w taki sposób, aby nie były one zależne od php-fpm?

 

Pozdrawiam!

Edytowano przez Desavil (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Skoro uruchamiasz je za pomocą system() lub exec() to przy restarcie zawsze będą zabijane.

A nie możesz zrobić tak, że po tym, jak php-fpm zostanie uruchomione ponownie to proces po prostu wystartuje od nowa?

Np. jakiś skrypt wykrywający działanie php-fpm.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Skoro uruchamiasz je za pomocą system() lub exec() to przy restarcie zawsze będą zabijane.

A nie możesz zrobić tak, że po tym, jak php-fpm zostanie uruchomione ponownie to proces po prostu wystartuje od nowa?

Np. jakiś skrypt wykrywający działanie php-fpm.

 

Oczywiście, że mogę i tak jest też zrobione jednak jest to bardzo uciążliwe.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie powinieneś do tego używać php-fpm tylko własnej usługi podpiętej pod systemd czy cokolwiek czego tam używasz jako init, nawet jeśli będzie to głupie polecenie typu php /sciezka/do/twojego/skrypt.php.

 

FPM się do tego całkowicie nie nadaje.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie powinieneś do tego używać php-fpm tylko własnej usługi podpiętej pod systemd czy cokolwiek czego tam używasz jako init, nawet jeśli będzie to głupie polecenie typu php /sciezka/do/twojego/skrypt.php.

 

FPM się do tego całkowicie nie nadaje.

 

Zdaję sobie z tego sprawę, dlatego też szukam rozwiązania jak najlepiej to przerobić.

 

Ogólnie rzecz biorąc Nginx+PHP-FPM służy do sterowania pewnymi procesami na serwerach z zewnątrz (z głównego serwera do kontrolowania), np. uruchamianiem jakiś procesów. Rozumiem, że powinienem stworzyć jakąś usługę i do niej przekazywać odpowiednie argumenty i nadal będę ją mógł uruchamiać przez funkcję system(), jednak będzie działała jako własna usługa?

Edytowano przez Desavil (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

O ile dobrze zrozumiałem do powinieneś stworzyć skrypt który uruchamia usługi przez systemd i wywoływać go przez FPMa, Takie usługi powinny być nie zależne od web-serwera i php.

Edytowano przez 2M1R (zobacz historię edycji)

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ę


×