Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcja exec problem
Forum PHP.pl > Forum > Przedszkole
Mati010
Witajcie, mam problem ponieważ próbuję robić własny skrypt uruchamiania,resetowania,wyłączania serwera.
Problem mianowicie polega w uruchamianiu i resetowaniu.
Przy uruchamianiu klikam Włącz serwer i strona się ładuję wieki (ale serwer już chodzi) więc klikam stop. Niby ok ale chciałbym zrobić aby nie było tyle czekania tylko po prostu klikam Włącz serwer i włącza serwer a na stronie pisze serwer włączony.
Z resetowaniem ten sam problem skrypt wyłącza serwer i po tym tak samo jak wyżej.

Tutaj kodzik:

  1.  
  2. <?php
  3.  
  4. switch ( $_GET['serwer'] )
  5. {
  6.  
  7.  
  8. case wl:
  9. echo exec('./serv&');
  10. echo "<br> <font color='#008000'> Serwer zostal wlaczony! </<font>";
  11. break;
  12.  
  13. case reset:
  14. echo exec('killall -9 ./serv' );
  15.  
  16. sleep(10);
  17.  
  18.  
  19. echo exec('./serv&');
  20. echo "<br> <font color='#DAA520'>Serwer zostal zresetowany! </<font>";
  21.  
  22. break;
  23.  
  24. case wyl:
  25. echo exec('killall -9 ./serv');
  26. echo "<br> <font color='#8B0000'>Serwer zostal wylaczony! </<font>";
  27.  
  28.  
  29.  
  30.  
  31. break;
  32.  
  33. default:
  34. echo "!!! Blad zla strona !!!!";
  35. }
  36.  
  37. ?>
  38.  
erix
Dopisz ampersanda na końcu wykonywanego polecenia.
Mati010
NO, tak dodałem ale nie wiem czy chodziło dokładnie o to &. Dalej jak klikam Włącz serwer to strona ładuje się ładuje... A dałoby się zrobić tak, aby po kliknięciu nie będzie się tak długo ładował tylko odrazu wł serwer i wypisze mi że jest włquestionmark.gif



  1.  
  2. <?php
  3.  
  4. switch ( $_GET['serwer'] )
  5. {
  6.  
  7.  
  8. case wl:
  9. echo exec('./serv&');
  10. echo "<br> <font color='#008000'> Serwer zostal wlaczony! </<font>";
  11. break;
  12.  
  13. case reset:
  14. echo exec('killall -9 ./serv&' );
  15.  
  16. sleep(10);
  17.  
  18.  
  19. echo exec('./serv&');
  20. echo "<br> <font color='#DAA520'>Serwer zostal zresetowany! </<font>";
  21.  
  22. break;
  23.  
  24. case wyl:
  25. echo exec('killall -9 ./serv&');
  26. echo "<br> <font color='#8B0000'>Serwer zostal wylaczony! </<font>";
  27.  
  28.  
  29.  
  30.  
  31. break;
  32.  
  33. default:
  34. echo "!!! Blad zla strona !!!!";
  35. }
  36.  
  37. ?>
  38.  
  39.  


Nikt nie pomoże?? sad.gif
Fifi209
Ma się rozumieć, że:

wl
wyl


to stałe?
Mati010
Chyba źle opisałem problem. Chodzi o to jak mam kod:

serwer-wl.php
Cytat
<?php
echo exec('./serv&');
echo "<br> <font color='#008000'> Serwer zostal wlaczony! </<font>";
?>


Jak zrobić aby po wejściu na serwer-wl.php strona od razu wygenerowała napis serwer został włączony a nie ładowała się bug wie ile?? Próbowałem przez funkcję system() lecz wtedy nieco lepiej ale oddawał mi logi (nie potrzebne) od serwera.
Fifi209
A teraz czytamy w manualu:
Cytat
Jeśli program uruchamiany w tle zawiera tę funkcję, należy upewnić się, że wyjście tego programu jest przekierowane do pliku lub innego strumienia wyjściowego. W przeciwnym przypadku PHP zawiesi działanie aż do zakończenia działania wykonywanego programu.
Mati010
Czyli do komendy mam dopisać >! /dev/null/ questionmark.gif czy jak questionmark.gif
zegarek84
Cytat(Mati010 @ 18.10.2010, 19:03:30 ) *
Czyli do komendy mam dopisać >! /dev/null/ questionmark.gif czy jak questionmark.gif
sorki - może nie powinienem teraz pisać z pewnych powodów ale ;p...

puść sobie najprostszy skrypt gdzie masz file_get_contents(adres) i ten adres to ta sama strona... potem zastanów się nad tym co się stało, przyjrzyj się swojemu skryptowi i wróć z powrotem... tak.... zapętlić skrypt można nie tylko pętlą w skrypcie czy referencją do funkcji... fakt tu nie ma zapętlenia... ale żeby coś móc zrobić to proces trzeba odblokować - kiedy on jest używany przez php... i w drugą stronę nawet jak twardo przerwiesz coś takiego to jakim cudem masz uzyskać odpowiedźquestionmark.gif - jedynie musiałbyś pogodzić się z tym co się dzieje i odpowiednio napisać algorytm lub polecenie wykonać zdalnie z innej domeny lub innego jakiegoś lekkiego demona php...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.