Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcje system i uruchomienie procesu
Forum PHP.pl > Forum > PHP
mlody69
Witam
napisałem mały skrypt który ma uruchomić serwer cs,wygląda tak
  1. <?php
  2. echo '<h1>Start serwera</h1>';
  3. system('cd '.$path2.' -u',$return_var);
  4. $cmd ='./hlds_run -game cstrike -master +ip '.$ip.' +port '.$port.' +maxplayers '.$maxplayers.' +exec server.cfg ';
  5. $test = system(EscapeShellCmd($cmd) -u,$return_var);
  6. system('screen -wipe',$return_var);
  7.  
  8. echo $return_var;
  9.  
  10. }
  11. ?>

Jednak na stronie wyświetla się tylko:
Cytat
There is a screen on: 31471.hlds (06/30/09 15:20:51) (Detached) 1 Socket in /var/run/screen/S-www-data. 1

Rozumiem,ze uruchamia go jako www-data a nie root?
erix
Nie; widać masz screena odpalonego na tym samym koncie. IMO musisz najpierw dołączyć się do screena, wtedy dopiero uruchamiać polecenia.
mlody69
hmm.a jak to zrobić?
erix
Google: Linux screen

Albo man screen w konsoli.
mlody69
Jezeli wyłacze procesy serwera i próbuje na czysto włączyć serwer to pojawia się komunikat:
Cytat
No Sockets found in /var/run/screen/S-www-data. 1


A gdy uruchomię serwer zwykle z putty i dodam do kodu:
  1. <?php
  2. echo system('screen -r hlds');
  3. ?>

otrzymuję
Cytat
Must be connected to a terminal.


Gdy wykonam taki kod
  1. <?php
  2. echo exec('whoami');
  3. ?>

To wypluwa www-data,a o ile mi wiadomo to www-data nie ma takich praw,nie?

Wypluwa mi już właściwy pid serwera ale go niestety jeszcze nie zabija.
Kod wygląda tak:
  1. <?php
  2. echo '<h1>Wyłącz serwer</h1>';
  3.    $pid = GetServerPID();
  4.    echo $pid;
  5.    if ($pid == 0)
  6.        echo 'Serwer nie jest włączony!';
  7.    else {
  8.        echo exec("kill -9 $pid", $output);
  9.    }
  10. ?>
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.