[php] output exec() opvangen

Pagina: 1
Acties:

  • pimlie
  • Registratie: November 2000
  • Laatst online: 15-09 18:06
Ik heb op mijn server een dedicated RTCW server draaien. Die server moet ook door mensen die nix met linux kunnen worden onderhouden, dus ik heb een aantal phpscriptjes geklust waarmee je de config files kan editen en de server kan starten/afsluiten.

De server start ik met de exec() functie:
code:
1
exec("/var/rtcw/wolfded +exec server.cfg &");

Het probleem is nu dat wolfded de hele log blijft outputten. Ik heb al geprobeerd dat op te vangen en weg te schrijven, maar dat lukte me niet. Hij bleef de hele tijd wachten totdat het process klaar was, maar dat is dus nooit klaar. Die server draait 24/7.

Ik heb dus in de config files maar gezet dat ie geen logfiles meer moet aanmaken, maar om de 1 of andere vage reden zit ie nu alle log info naar de apache error.log te gooien :?

Waarom gebeurt dat? En hoe kan ik ervoor zorgen dat ik die output van exec() opvang en wegschrijf in bestandjes van bijvoorbeeld max 10kb?

De server draait op Debian Stable en Apache 1.3.9 & PHP 4.0.3pl1

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

shell-exec mischien?

Verwijderd

redirect de output buiten php om, bijvoorbeeld:

exec("blablabla >/dev/null 2>>/tmp/rtcw.err");

(waarbij naar /dev/null de standard output wordt geschreven (dus gewoon weggegooit) en aan /tmp/rtcw.err alles naar de standard error output wordt wordt toegevoegd).

Je kunt nu alleen geen maximum formaat opgeven, hoewel je dat op kan lossen door logrotate te gebruiken.

In php kan je volgens mij die output niet opvangen (vanwege de "&" blokt exec zegmaar niet). Dat er dan door rtcw toch data naartoe wordt gestuurt zou wellicht ook de error van apche verklaren.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
system() ?

  • pimlie
  • Registratie: November 2000
  • Laatst online: 15-09 18:06
lnfinitive> Het werkt! Daar heb ik dus gister de hele dag op zitten kloten ;(

Jij bent mijn held voor vandaag >:)

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 10:16

https://niels.nu


Verwijderd

PHP:
1
2
3
<?
echo passthru(`commando`);
?>

let op de ` (kromme quotes), op de knop van de ~

  • stfn345
  • Registratie: Januari 2000
  • Laatst online: 15-09 16:39
passthru


met backticks..
Pagina: 1