Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcje system i uruchomienie procesu
mlody69
post
Post #1





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie; widać masz screena odpalonego na tym samym koncie. IMO musisz najpierw dołączyć się do screena, wtedy dopiero uruchamiać polecenia.
Go to the top of the page
+Quote Post
mlody69
post
Post #3





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

Ostrzeżenie: (0%)
-----


hmm.a jak to zrobić?
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Google: Linux screen

Albo man screen w konsoli.
Go to the top of the page
+Quote Post
mlody69
post
Post #5





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:57