mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 19.03.2024 12:57 Benutzername: Passwort: Auto-Login

Thema: [php] gnu screen über php starten vom 25.11.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [php] gnu screen über php starten
Seite: 1, 2, 3  Weiter
Autor Nachricht
Johnobo
Threadersteller

Dabei seit: 28.12.2005
Ort: bei Berlin
Alter: -
Geschlecht: Männlich
Verfasst Sa 25.11.2006 13:32
Titel

[php] gnu screen über php starten

Antworten mit Zitat Zum Seitenanfang

hey ho,

ok folgednes, ich bastel an einem script mit dem ich ein webgame online administrieren kann ohne immer per ssh erst alles einzustellen, bzw, das game zu starten.
also habe ich es erst mit exec() probiert:

Code:
<?php
  if ($_GET['action']="start") {
    echo "0";
    exec ("./openttd-0.4.7/openttd -D");
  }
  if ($_GET['action']="kill") {
  echo "1";
  exec ("killall openttd");
  } 
?>


das geht soweit, erstartet des game, aber des läuft dann nur so lange wie das php script auf dem server erlaubt ist zu laufen, ergo will ich das game per gnu sreen starten, aber

Code:
<?php
  if ($_GET['action']="start") {
    echo "0";
    exec ("screen ./openttd-0.4.7/openttd -D");
  }
?>


geht nicht. also ich bekomm logischerwiese auch keine fehlermeldung, aber er startet halt dne server nicht, nichtmal nin prozess.
auf php.net wird der befehl proc_open() beschrieben, ich versteh den zweiten und dritten paramter nicht:
Zitat:
array descriptorspec, array &pipes


wäre nice wenn jemand mir helfen könnt.

mfg.


Zuletzt bearbeitet von Johnobo am Sa 25.11.2006 13:33, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst Sa 25.11.2006 18:36
Titel

Antworten mit Zitat Zum Seitenanfang

Leg dir eine Bash-Datei an:
Code:
#!/bin/bash
./openttd-0.4.7/openttd -D &

und ruf die auf.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Johnobo
Threadersteller

Dabei seit: 28.12.2005
Ort: bei Berlin
Alter: -
Geschlecht: Männlich
Verfasst Sa 25.11.2006 20:37
Titel

Antworten mit Zitat Zum Seitenanfang

geht ebenfalls nicht. oder ich mach was mit der bash verkehrt, habe mir zwei files angelgt in den httpdocs folder, eine bash mit dem pfad aus dem kompletten pfad und eine mit der urpsrung asu dem httpdocs ordner. mist.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst So 26.11.2006 10:43
Titel

Antworten mit Zitat Zum Seitenanfang

Zeig mal die beiden Files.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Johnobo
Threadersteller

Dabei seit: 28.12.2005
Ort: bei Berlin
Alter: -
Geschlecht: Männlich
Verfasst So 26.11.2006 10:53
Titel

Antworten mit Zitat Zum Seitenanfang

start_ottd_01:
Code:
#!/bin/bash
/var/www/vhosts/johnobo.de/httpdocs/openttd-0.4.7/openttd -D &


start_ottd_02:
Code:
#!/bin/bash
./openttd-0.4.7/openttd -D &


und aufgerufen werdne sie wieder über:
Code:
<?php
  echo "0";
  if ($_GET['action']="start") { exec ("start_ottd_01"); } /*bzw start_ottd_02*/
?>


Zuletzt bearbeitet von Johnobo am So 26.11.2006 10:55, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst So 26.11.2006 11:22
Titel

Antworten mit Zitat Zum Seitenanfang

Hm, ok. Dann verwenden mal nohup.
Code:
nohup /bin/bash -c "./openttd-0.4.7/openttd -D" &
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Johnobo
Threadersteller

Dabei seit: 28.12.2005
Ort: bei Berlin
Alter: -
Geschlecht: Männlich
Verfasst So 26.11.2006 11:50
Titel

Antworten mit Zitat Zum Seitenanfang

yes so gehts:

Code:
<?php
  echo "0";
  if ($_GET['action']="start1") {
    exec ("nohup /bin/bash -c \"./openttd-0.4.7/openttd -D\" &");
    echo "1";
  }
?>


jezez muss iches nur noch schließen könne, weil killall grad nciht so will, aber des pack ich schon. danke.
* huduwudu! *
danke.


edit gibt doch ein problem, laut dem ps befehl läuft das game nciht, laut dem gmae läuft es, er zeigt mir den server an kann einstiegne aber wenn ich conecten möchte sagt er das die verbindung getrennt wurde. aber online isser. * Ich geb auf... *
es is so, das die php datei einfach die ganze zeit lädt. und sofort wenn ich mit dme sever connecten will stopt das script und ich werde us dme server geschnissen bevor ich verbunden bin.


Zuletzt bearbeitet von Johnobo am So 26.11.2006 12:10, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst So 26.11.2006 12:43
Titel

Antworten mit Zitat Zum Seitenanfang

Evtl. läuft noch eine andere Instanz des Spieles und belegt den
Port?

Nohup gibt dir die Prozess-ID zurück. Die musst Du speichern und
dann später zum killen verwenden.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen [JS] Popup screen.height & screen.width
typoliebling für screen
72 DPI - Screen 1 zu 1 in PDF umwandeln?
Screen Calipers
splash screen
Screen capture Programm
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.