Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][PHP]Wyodrębnienie procesu i zabicie go
botnaizi
post 11.10.2010, 16:21:28
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


Witam.

Piszę mały panel na własne potrzeby,
Mam taki kodzik
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>serwer</title>
  6. </head>
  7.  
  8. <body>
  9. <?php
  10. $start = $_GET['start'];
  11. $stop = $_GET['stop'];
  12. $restart = $_GET['restart'];
  13. $dir = array("/home/hlds1");
  14. $players = array("20");
  15. for($i=0;$i<count($dir);$i++){
  16. print $i.".".$dir[$i].'<form action="" method="GET">
  17. <a href="panel.php?start='.$i.'">Start</a> <a href="panel.php?stop='.$i.'">Stop</a> <a href="panel.php?restart='.$i.'">Restart</a>
  18.  
  19. </form>';
  20. }
  21. if($stop!="") {
  22. //$out = `ps -aux | grep SCREEN -A -m -d -S hlds*`;
  23.  
  24. class KillAllProcesses {
  25. function killallprocesses() {
  26. $this->listItems();
  27. }
  28. function listItems() {
  29.  
  30. $output = shell_exec('ps -x| grep hlds'.$_GET['stop']);
  31. $this->output($output);
  32. $array = explode("\n", $output);
  33. $this->doKill($array);
  34. }
  35. function output($output) {
  36. print "<pre>".$output."</pre>";
  37. }
  38. function doKill($array) {
  39. for ($i = 1; $i < count($array); $i++) {
  40. $id = substr($array[$i], 0, strpos($array[$i], ' ?'));
  41. print $id."<br />";
  42. }
  43. }
  44. }
  45.  
  46. new KillAllProcesses();
  47.  
  48.  
  49.  
  50. }
  51.  
  52.  
  53.  
  54. ?>
  55.  
  56. </body>
  57. </html>

Pokombinowałem trochę i wyszło mi coś takiego ale w tej linii
Kod
  $output =   shell_exec('ps -x| grep hlds'.$_GET['stop']);

jak dodaję to :
Kod
| grep hlds'.$_GET['stop']

to nie wyświetla mi procesu oprócz
Kod
28245 ?        R      0:00 sh -c ps -x| grep hlds1


Może proc_open ? Tylko, że nie wiem jak tego użyć :]
Pozdrawiam

Ten post edytował botnaizi 11.10.2010, 21:14:06
Go to the top of the page
+Quote Post
erix
post 11.10.2010, 21:48:56
Post #2





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




Ale po co...?

Cytat
to nie wyświetla mi procesu oprócz

Masz PID w tej linijce, nic więcej Ci nie potrzeba. Znając ten numer można bez problemu ubić proces jednym poleceniem (kill).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
botnaizi
post 12.10.2010, 06:18:30
Post #3





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


erix, wiem jak ubić proces smile.gif Problem jak go ubić z poziomu php ale już sobie poradziłem.
Pewnie stwierdziłeś, że chcę wyciągnąć samo id procesu, żeby potem w konsoli go ubić przez tą linike :
Kod
    print $id."<br />";

ale to miałem tylko po to aby sprawdzać czy w ogóle to dobry proces pokazuje.
Go to the top of the page
+Quote Post
erix
post 12.10.2010, 08:55:20
Post #4





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




Ale przecież ubicie procesu możesz przez shell_exec dodać. tongue.gif

Chyba że nie masz do niego uprawnień; wtedy przydałby się osobny skrypt-proxy w bashu, który by sprawdzał, co skrypt-matka chce zrobić i dodać ten pierwszy do sudoers. smile.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
botnaizi
post 12.10.2010, 14:52:28
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


Wiem to :] Tylko że trzeba dać komende
Kod
kill $id_procesu


Dlatego musiałem oddzielić id procesu smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.08.2025 - 21:01