Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php exec i pobieranie pid pod linuxem
Forum PHP.pl > Forum > PHP
pgrzelka
Witam

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


linux gentoo
Quantum
pgrep -x <process name> ?
pgrzelka
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 ?

redeemer
  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.
pgrzelka
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");
redeemer
& 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?
pgrzelka
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
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.