![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 22.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich forumowiczów. Nurtuje mnie ostatnio jeden problem, na który nie mogę znaleźć odpowiedzi.
Ogólnie muszę zrobić funkcję zliczającą ile jest uruchomionych procesów z daną nazwą. W Linuxie robię to zawsze tak: Kod pgrep -f "nazwa procesu" | wc -l No i otrzymuję odpowiednio 0 jeśli taki proces w ogóle nie jest uruchomiony, 1 jeśli jest tylko 1 itd... Teraz jeśli w php zrobię analogicznie: to otrzymuję wartości o 1 większe. Czyli jeśli proces nie jest uruchomiony to zwraca mi 1, jeśli jest 1 to zwraca mi 2 itd... Może mi ktoś wytłumaczyć dlaczego tak się dzieje? Testowałem to już na 2 różnych Linuxach, jeden z PHP 5.2.2 drugi 5.2.4. Uruchamiałem polecenie pgrep jako użytkownik apache w shellu i cały czas to samo. Z basha zawsze wartości o 1 mniejsze. Po zmianie funkcji exec() na shell_exec() cały czas jest to samo niestety. Znalazłem rozwiązanie. Może akurat się komuś przyda. Otóż polecenie pgrep wołane z poziomu php działa trochę błędnie ponieważ znajduje też samą siebie. Aby tego uniknąć wystarczy trochę zmienić parametry wołania polecenia. Prawidłowo powinno wyglądać to tak: |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 07:37 |