system() programm beenden ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • system() programm beenden ?

    Hallo !
    Also ich hab es doch kurz vrom verzweifeln noch geschafft rechte für ausführbare dateien zu setzen *g

    Nun mein Problem .

    Die exe bzw. batch dateien die gestartet werden werden im hintergrund geöffnet und ich kann sie nur in der terminaldienstverwaltung beenden.
    oft kann ich auch nicht unterscheiden welche dateien das sind .
    denn wenn ich nämlich die php datei nochmal aufrufe dann werden die gleichen dateien gestartet .

    meine frage nun .
    wie kann ich es machen das die datei die vom anwender gestartet wurde
    durch php wieder beenden ?
    und wie kann ich unterbinden das die datei 2 bzw 100 mal gestartet wird wenn ich 100 mal aktualisiere ???!!!

    ich starte folgendermaßen die batch datei :

    <?
    if (!system('D:\\Inetpub\\wwwroot\\123.bat')) echo 'Kann nicht ausgeführt werden !';
    ?>

    Gruß , Stefens

  • #2
    zum beenden - dafür gibts keine windows-eigene lösung für, denke ich (ist ja kein diest). aber wenn du nach "kill" googlest (kill.exe müsste das tool heissen), findest du sicher eine möglichkeit, es für deine zwecke zu benutzen.

    zur kontrolle, wie oft das programm ausgeführt wurde, musst du irgendwo ein flag setzen (in der art: "started = true" oder so) und vor jedem aufruf von system() nach dem flag schauen und entsprechend handeln. wo du den flag nun ablegst, ist deine sache - cookie/session/db/textdatei/was dir sonst noch einfällt.

    viel erfolg
    (aber diesmal keine 7 seiten bitte - erst manual, dann probieren, dann erst posten)

    Kommentar


    • #3
      also ich glaube aber das es da eine lösung für gibt ...
      ...
      ich erklär nochmal mein vorhaben vielleicht wurde das ja doch noch von den 7 seiten verschluckt *ggg*

      hab verständis dafür , das ich gerade erst mit php anfange :-(
      *übrigens ...ich schaue immer zuerst ins manual dann teste ich und wenns net klappt , poste ich

      also ...
      ...ich habe einen clan und damit auch einen gameserver diesen windows root server eben .

      s.a. 7 seiten thread *lol

      so , nun wollte ich den gameserver also die server.bat datei
      über ein webinterface starten ..klappt ja nun auch .
      aber wie bitte machen es dann die anderen ? die einen solchen
      service anbieten ( gameserver )
      da kann man auch seinen server starten und beenden wie man lustig ist.
      und ich benötige eben nur 2 server
      einen train und ein public sever


      also was bitteschön bedeutet nun

      zur kontrolle, wie oft das programm ausgeführt wurde, musst du irgendwo ein flag setzen (in der art: "started = true" oder so) und vor jedem aufruf von system() nach dem flag schauen und entsprechend handeln. wo du den flag nun ablegst, ist deine sache - cookie/session/db/textdatei/was dir sonst noch einfällt.
      for allem dieses flag wo setz ich das denn dann ein ?
      in die server.bat oder in die php datei ? *kopfraucht*

      Danke

      Kommentar


      • #4
        und ich hätte da noch eine frage :-)

        wenn ich das hier :

        <? if (!system('123.bat')) echo 'Server kann nicht gestartet werden !'; ?>

        in eine tabelle packe
        ich meine so :

        <table width="764" border="0" cellpadding="0" cellspacing="0">
        <!--DWLayoutDefaultTable-->
        <tr>
        <td width="196" height="63">&nbsp;</td>
        <td width="568">&nbsp;</td>
        </tr>
        <tr>
        <td height="23">&nbsp;</td>
        <td valign="top">Server Start und Ausgabe</td>
        </tr>
        <tr>
        <td height="36">&nbsp;</td>
        <td>&nbsp;</td>
        </tr>
        <tr>
        <td height="155">&nbsp;</td>
        <td valign="top"><? if (!system('123.bat')) echo 'Server kann nicht gestartet werden !'; ?><!--DWLayoutEmptyCell-->&nbsp;</td>
        </tr>
        </table>


        oder das ganze in eintextfeld , wird der inhalt nicht angezeigt ..alsonicht live !

        wenn ich im browser stop anklicke dann zeigt er mir den geladenen inhalt , bricht aber das starten der datei ab ?!

        was kann ich da machen ?

        Kommentar


        • #5
          sorry, ohne grundlagen hat's wenig sinn. schattnbaum und qnet können dir dabei helfen, eine basis zu entwickeln, die die meisten deiner fragen überflüssig macht.

          Kommentar


          • #6
            Also wenn du mit system(..) ein Programm ausführst, dann wartet PHP, bis das Programm zu Ende ist, damit es Ausgaben, die das Programm evtl. gemacht hat, zurückliefern kann. Das gestartete Programm wird in gewisser Weise zu einem Teil deines PHP-Scripts. Wenn du da jetzt einen Gameserver startest, dann läuft dieser Server vermutlich ewig, und somit auch dein PHP-Script - und so lange das PHP-Script läuft, lädt dein Browser die Seite. Wenn du dann auf Abbrechen drückst, wird das PHP-Script abgebrochen, und somit auch das Programm (dein Gameserver).

            Und zum starten und stoppen von solchen Servern haben "die anderen" vermutlich extra Programme, die den Server getrennt vom Script starten bzw. stoppen. So ähnlich wie das mit Diensten funktioniert, wenn du z.B. "net start Apache" bzw. "net stop Apache" in ein Dos-Fenster eingibst (vorausgesetzt, Apache ist als Dienst installiert).
            hopka.net!

            Kommentar


            • #7
              Original geschrieben von penizillin
              zum beenden - dafür gibts keine windows-eigene lösung für, denke ich (ist ja kein diest). aber wenn du nach "kill" googlest (kill.exe müsste das tool heissen), findest du sicher eine möglichkeit, es für deine zwecke zu benutzen.
              Was ist dann die shutdown.exe ?
              Welche es ab XP eigentlich überall geben sollte und bei bei Win2K im Adminpack vorhanden ist....
              [color=blue]MfG Payne_of_Death[/color]

              [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
              [color=red]Merke:[/color]
              [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

              Murphy`s Importanst LAWS
              Jede Lösung bringt nur neue Probleme
              Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
              In jedem kleinen Problem steckt ein großes, das gern raus moechte.

              Kommentar


              • #8
                Die Shutdown.exe fährt den kompletten Rechner runter, hier soll nur ein Programm beendet / gestartet werden.
                hopka.net!

                Kommentar


                • #9
                  OffTopic:
                  Original geschrieben von Hopka
                  Die Shutdown.exe fährt den kompletten Rechner runter,
                  damit ist das programm aber auch zu ende ..
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    ahja verstanden .
                    nun gut und wie realisiere ich das ganze dann nun ?
                    irgendwie muss es soch möglich sein oder nicht ?
                    sprich ich habe keine ahnung aber vielleicht hilft da auch vb weiter ?
                    wenn das alles so kombiniert ist das jedes script seine aufgaben durchführt also sprich das vb-script die programme startet/beendet ?
                    nur von vb hab ich ja nu garkeine ahnung *g*

                    beim windows 2003 server gibts doch auch eine adminweboberfläche
                    und diese scripte laufen meisst auch mit vb .
                    und an hand der oberfläche könnte ich doch auch programme starten und beenden wenn ich das möchte oder etwa nicht ?

                    oder ist das jetzt garnicht möglich ?

                    also mein verscuh war folgendes ...

                    das php script ruft die 123.bat datei auf
                    mit dem inhalt start server.exe

                    über eine extra php z.b stop.php diese ruft dann stop.bat auf
                    mit dem inhalt :

                    stop server.exe
                    exit

                    das funktioniert allerdings auch aber nur wenn ich die programme von hand ausführe also richtig eben .

                    wenn ich den exit befehl in die stop.bat schreibe
                    dann gibt er mir endlos das hier aus :

                    stop server.exe
                    stop server.exe
                    stop server.exe
                    usw
                    usw

                    und wer oder besser was ist schattnbaum und qnet ???

                    Kommentar


                    • #11
                      Original geschrieben von Hopka
                      Die Shutdown.exe fährt den kompletten Rechner runter, hier soll nur ein Programm beendet / gestartet werden.
                      Oh das hab ich überlesen
                      [color=blue]MfG Payne_of_Death[/color]

                      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                      [color=red]Merke:[/color]
                      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                      Murphy`s Importanst LAWS
                      Jede Lösung bringt nur neue Probleme
                      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                      Kommentar


                      • #12
                        http://www.schattenbaum.net/
                        http://tut.php-q.net/

                        lies dir was an, deine ziele sind momentan zu hoch für dich, imho.
                        außerdem wirds für solche sachen, wie gameserver, bestimmt auch fertiglösungen geben.

                        Kommentar


                        • #13
                          ja die gibt es , aber nicht als weboberfläche :-(

                          ich schau mir die links mal an .

                          und übrigens : zu hoch glaube ich ist das wohl nicht .
                          umso mehr input desto besser ist es .
                          ausserdem lern ich so ziemlich schnell =)
                          bin erst seit 7 tagen mit php im gange und hab es meines achtens
                          nach schon ziemlich gut drauf ...
                          ..naja , also danke ...die links sind klasse =)
                          Zuletzt geändert von stefens; 05.12.2004, 21:55.

                          Kommentar


                          • #14
                            Frage: wofür ist das ganze eigentlich? keine Mensch macht sowas, weil das Unfug ist. Man startet höchstens eine externe Datei über den Webserver, wenn man sicher weiß, dass das Proggi auch irgendwann sich selbst beendet.

                            Kommentar


                            • #15
                              weil ich gern mehrere server aufmachen möchte und ich meinen members sicher net die vollen zugangsdaten zum remoteserver gebe .
                              die sollen den server eben nur starten und beenen können und ggf die ini noch editieren .
                              der rest geht denen nichts an !!!
                              und daher ist es für mich sicher kein unfug

                              Greetz Stefens .

                              Kommentar

                              Lädt...
                              X