Strona 1 z 2

php funkcja system

: 17 kwietnia 2007, 21:45
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ź ;)

: 17 kwietnia 2007, 23:28
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" ?

: 18 kwietnia 2007, 11:21
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ź!

: 18 kwietnia 2007, 17:54
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

: 18 kwietnia 2007, 18:11
autor: MenWizard
Nie rozumiem tego? Możesz dać mi jakiś przykład z podpisami po pol?

Btw dopiero uczę się php :P

: 18 kwietnia 2007, 18:21
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 ;-)

: 18 kwietnia 2007, 18:22
autor: MenWizard
Zrozumiałem, to nakazuje zakończyć prace skryptu. W przeciągu 30minut dam Ci odpowiedź czy to działa.

: 18 kwietnia 2007, 18:33
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

: 18 kwietnia 2007, 18:43
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!

: 19 kwietnia 2007, 16:23
autor: phund
zobacz w tablicy procesów 8-)