Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> php exec i pobieranie pid pod linuxem
pgrzelka
post 24.01.2010, 09:33:34
Post #1





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


Witam

jak w temacie potrzebuję pobrać PID procesu który aktualnie uruchomiłem poleceniem exec,


linux gentoo


--------------------
Go to the top of the page
+Quote Post
Quantum
post 24.01.2010, 15:45:02
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


pgrep -x <process name> ?
Go to the top of the page
+Quote Post
pgrzelka
post 25.01.2010, 00:06:54
Post #3





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


a jeśli mam kilka procesów o takiej samej nazwie?

czy jedyne co mogę zrobić to
1 . pobranie pid procesów 'murmur'
2 . uruchomienie kolejnego procesu 'murmur'
3 . pobranie pid procesów 'murmur'
4 . sprawdzenie którego pid nie było przy pierwszym pobraniu ?



--------------------
Go to the top of the page
+Quote Post
redeemer
post 25.01.2010, 00:27:33
Post #4





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


  1. $command = $commandJob.' > /dev/null 2>&1 & echo $!';
  2. exec($command ,$op);
  3. $pid = (int)$op[0];


http://www.php.net/manual/en/function.exec.php#88704 tu masz nawet całą klasę do obsługi procesów pod Linuxem.


--------------------
Go to the top of the page
+Quote Post
pgrzelka
post 25.01.2010, 08:41:22
Post #5





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


redeemer: w twoim sposobie jest opisane jak postawić proces ale ze znacznikiem '&', co oznacza że jest on wykonany w tle i kończony, fakt że wstaje wtedy również drugi proces tego programu ale ma już inne PID,

opiszę co chcę zrobić, tworzę serwis w php umożliwiający zarządzanie serwerami głosowymi (mumble, teamspeak, ventrilo), klient zamawia serwer z określoną ilością slotów, skrypt kopiuje czystą instalkę odpowiedniego serwera do folderu /home/test/orders/$ID_SERWERA_Z_BAZY,

teamspeak uruchamiam tak
  1. chdir('../../orders/'.$id);
  2. exec("screen -AmdS ts_".$id." ./server_linux", $v1, $v2);

ventrilo
  1. chdir('../../orders/'.$id);
  2. exec("screen -AmdS vt_".$id." ./ventrilo_srv", $v1, $v2);

i tu nie mam problemu z pobraniem pid, wywołuje
  1. exec ('ps ax', $d);
szukam vt_$id i mam PID,

problem jest z mumble, które uruchamia się jedynie komendą
  1. exec("./murmur.x86");


Ten post edytował pgrzelka 25.01.2010, 08:41:51


--------------------
Go to the top of the page
+Quote Post
redeemer
post 25.01.2010, 18:10:44
Post #6





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


& oznacza, że proces "idzie w tło", jednak to czy się zakończy czy nie, to zależy od tego procesu.

Nie do końca rozumiem też, o co chodzi z tym mumble. Nie znam tego software'u, ale czy nie możesz też go odpalić na screenie jak robisz to z teamspeakiem i ventrilo?


--------------------
Go to the top of the page
+Quote Post
pgrzelka
post 25.01.2010, 19:55:27
Post #7





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


Cytat(redeemer @ 25.01.2010, 18:10:44 ) *
Nie do końca rozumiem też, o co chodzi z tym mumble. Nie znam tego software'u, ale czy nie możesz też go odpalić na screenie jak robisz to z teamspeakiem i ventrilo?

nie startuje tak, ale już mam sposób, zmieniam nazwę pliku murmur.x86 na mu_ID.x86 i dalej to już nie problem


--------------------
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: 12.06.2025 - 15:57