php funkcja system

Potrzebujesz pomocy z C, C++, perl, python, itp.
MenWizard
Posty: 12
Rejestracja: 12 stycznia 2007, 10:18

php funkcja system

Post autor: MenWizard »

Witam, mam nadzieje że jest to dobry dział a więc: mam problem z skryptem. Chciałem napisać panel do włączania i wyłączania serwera gry, ta druga opcja działa z pierwszą jednak jest problem. Zależnie od metody czasem w ogóle się nie uruchamia a czasem uruchamia się i "zawiesza" na 99% użycia procesora.

on.php
<html>
<head>
<title><? echo ''.$title.''; ?></title>
<meta name="title" content="<? echo ''.$title.''; ?>" />
<meta name="description" content="<? echo ''.$title.''; ?>." />
<?
$title = "Linux Servers - Game Admin Panel";
echo 'If you server was shuted down - its been started: ';
?>
<? system('/home/lighttpd/sa-mp/on.sh'); ?>
on.sh
cd ./sa-mp
nohup ./samp &
Oraz otwierając stronę z plikiem on.php wykonuje się ona w nieskończoność, tak jak by gdzieś była pętla. Jednak serwer włącza się "od razu" (czyt, w przeciągu 1-2 sekund) ale i tak po włączeniu serwera nie wyświetla się treść z echo; tylko cały czas strona się wczytuje, chciałem dodać że robiłem podobną rzecz z teamspeakiem i używając tej funkcji nie miałem z tym problemów.

Pozdrawiam i liczę na szybką odpowiedź ;)
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

http://pl2.php.net/manual/pl/function.system.php

nie używałem nigdy tej funkcji ale czy ona przypadkiem nie potrzebuje dwóch argumentów ?

Masz tak ustawiony serwer że wystarczy Ci "<?" a nie "<?php" ?
MenWizard
Posty: 12
Rejestracja: 12 stycznia 2007, 10:18

Post autor: MenWizard »

chciałem dodać że robiłem podobną rzecz z teamspeakiem i używając tej funkcji nie miałem z tym problemów.
Pozdrawiam i czekam na odpowiedź!
phund
Posty: 58
Rejestracja: 30 marca 2007, 11:33
Lokalizacja: UTP

Post autor: phund »

A gdyby z on.sh wyrzucic & i przekierować wyjście gdzieśtam (np. do /dev/null)?
http://pl2.php.net/manual/pl/function.system.php#59884
MenWizard
Posty: 12
Rejestracja: 12 stycznia 2007, 10:18

Post autor: MenWizard »

Nie rozumiem tego? Możesz dać mi jakiś przykład z podpisami po pol?

Btw dopiero uczę się php :P
phund
Posty: 58
Rejestracja: 30 marca 2007, 11:33
Lokalizacja: UTP

Post autor: phund »

Próbując się jeszcze raz wczytac w ten tekst doszedlem do wniosku, ze & w on.sh moze chyba zostac, ale w wywolaniu funkcji system daj no. takie cos:

Kod: Zaznacz cały

system("/home/lighttpd/sa-mp/on.sh >/dev/null");
Nie wiem, czy to zadziała, jeszcze się do php nie zabierałem jakoś szczególnie w mojej karierze ;-)
MenWizard
Posty: 12
Rejestracja: 12 stycznia 2007, 10:18

Post autor: MenWizard »

Zrozumiałem, to nakazuje zakończyć prace skryptu. W przeciągu 30minut dam Ci odpowiedź czy to działa.
phund
Posty: 58
Rejestracja: 30 marca 2007, 11:33
Lokalizacja: UTP

Post autor: phund »

MenWizard pisze:Zrozumiałem, to nakazuje zakończyć prace skryptu.
Nie, nie kończy skryptu, tylko (może nieudolnie) przekierowuje wyjście "w kosmos".
O przekierowywaniu przeczytaj tu:
http://www.dief.republika.pl/stream.html
MenWizard
Posty: 12
Rejestracja: 12 stycznia 2007, 10:18

Post autor: MenWizard »

OK, działa - mam jeszcze jedno pytanie, czy po przekierowaniu tego w kosmos skrypt jednak kończy swoje działanie czy dalej wykonuje się w nieskończoność, i czy nie będzie to stanowiło problemu dla mojego słabego serwerka?

P.S Dzięki za link.

P.S2 To pytanie z czystej ciekawości bo nie widze żeby ten skrypt nie wywołuje żadnych problemów z obciążeniem.

Pozdrawiam!
phund
Posty: 58
Rejestracja: 30 marca 2007, 11:33
Lokalizacja: UTP

Post autor: phund »

zobacz w tablicy procesów 8-)
ODPOWIEDZ