![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
Witam!
Udostępniałem serwery gry na serwerze dedykowanym z systemem Windows i wykorzystywałem tam polecenia takie jak:
i po prostu:
To wszystko działało i serwery też śmigały. Natomiast teraz muszę przerzucić się na Debian 5. I mam pytanie z działu PHP/Debian: Jakich poleceń mam używać do uruchamiania procesów w tle(podejrzewam że trzeba tutaj użyć screen'a), a także do ich wyłącznia. Najważniejsze jest to że mam ok. 10-15 folderów i w każdym uruchamia się to samo polecenie i teraz jak dokonać identyfikacji procesów żeby 1 klient nie wyłączał wszystkich serwerów na maszynie. Jak do PHP przyjąć ID procesu po włączeniu go w screenie i jak potem tak proces zabić. |
|
|
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
faktycznie tematyka PHP (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . serwer jest na windows a ty chcesz przejść na linux, to nie będzie takie proste wiesz w windzie mogłeś robić co ci się jawnie podobało, a na linuxie niestety, waładzę ma admin i nie wszystkie programy tu ci pójdą a jeżeli chodzi o procesy w linuxie to jest polecenie "ps -aux" do zabijania jest kill i tak dalej,
Ten post edytował okitoki 8.05.2009, 12:42:16 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
okitoki -> ja wiem, że polska język trudna, ale od czego jest choćby głupi Word?
misiek08 -> w systemach uniksowych exec() itd. korzystają z powłoki sh (konkretniej jakiegoś jej klonu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) do odpalania innych programów. Po prostu musisz wykorzystać składnię tej powłoki do osiągnięcia żądanego efektu. Nie wiem, jak stoisz z wiedzą nt systemów uniksowych, więc ciężko coś więcej konkretnie doradzić. Na pewno możesz mieć problemy z uprawnieniami, gdyż tutaj bezpieczeństwo ma znacznie wyższy priorytet niż w Windowsie. Uruchamiając program w tle, musisz zakończyć wywołanie znakiem & - ponadto sam PHP nakłada Ci ograniczenie, że musisz przekierować wyjście procesu do pliku, /dev/null albo co tam chcesz, inaczej się on zwiesi i będzie oczekiwać na zakończenie działania. Przykład: Kod exec('./program > /dev/null 2>&1 &'); Do przeglądania listy procesów możesz użyć polecenia ps, ale nie w takiej formie, jak podał ją okitoki. Raz, że jeśli już aux, to bez pauzy, a dwa, że te opcje wyplują Ci o wiele za dużo niepotrzebnych danych. Poczytaj sobie manual i dobierz to, czego potrzebujesz. Kontrolę przebiegiem wykonywania procesów realizujesz poleceniem kill, które służy (wbrew temu, co sugeruje nazwa) do wysyłania sygnałów. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
Tzn moja wiedza nie jest zbyt duża, i jak pisałem jestem zmuszony kupić serwer dedykowany z linux'em.
Myślę że dobre będzie polecenie: Kod exec('screen wine ./xxx.exe /cfg=xx.cfg'); Tylko teraz jak z tego wyciągnąć z tego ID procesu żeby wykorzystać potem przy kill? Może zrobić tak że każdy ten exe ma nazwę wg wzoru: xx1.exe xx2.exe ? Ten post edytował misiek08 8.05.2009, 13:36:11 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
no nic, zostaje ci przetestować to na żywym organizmie, tzn na debianie. jak to będzie twój serwer to lepiej to uruchom w wierszu shell-u, będzie większe prawdopodobieństwo że Ci to pudzie.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 41 Dołączył: 6.04.2009 Skąd: Gdańsk/okolice Ostrzeżenie: (0%) ![]() ![]() |
wyciąganie ID procesu - jedyne co mi do głowy przychodzi na szybko to kombinacja ps+grep+cut - słowem, coś w guście skryptów shellowych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
A może PHP niech wywołuje skrypty basha. Jak to jest z przechwytywaniem w PHP tego co bash chce powiedzieć światu?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 13:58 |