kai: DOS Prozess in den hintergrund legen

hallo zusammen,

ich hab mir ein tool runtergeladen das eine Apache/php anwendung
von cd startet. klappt auch soweit wunderbar, aber es wird
natürlich der apache prozess in einem dos fenster angezeigt,
was nicht so schön ist...
die *.bat datei sieht so aus:

[CODE]
start \servcd\mysql\bin\mysqld-nt.exe --standalone
cd \servcd\apache
apache.exe -k start
[/CODE]

kann ich den prozess iregendwie im hintergrund starten ODER einfach
das dos-fenster ausblenden ohne den prozess zu killn ??

vielen dank schonmal
kai

  1. Hi there,

    kann ich den prozess iregendwie im hintergrund starten ODER einfach
    das dos-fenster ausblenden ohne den prozess zu killn ??

    Du kannst an der Stelle ein Stück undurchsichtiges Tesaband auf den Monitor kleben...

    scnr

  2. gudn tach!

    kann ich den prozess iregendwie im hintergrund starten

    running apache for windows as a service

    prost
    seth

  3. Hallo Kai,

    die *.bat datei sieht so aus:

    start \servcd\mysql\bin\mysqld-nt.exe --standalone
    cd \servcd\apache
    apache.exe -k start

    wenn da nicht noch andere Anweisungen folgen, dann verstehe ich nicht, warum das Konsolenfenster (das übrigens KEIN DOS-Fenster ist) bei dir geöffnet bleibt. Ich hab's gerade mal versucht, bei mir nachzuvollziehen - ich habe nur in Ermangelung eines SQL-Servers stattdessen den notepad als Dummy-Prozess gestartet. Bei mir rauschen die Anweisungen einfach durch, die entsprechenden Prozesse werden gestartet, und das Konsolenfenster dann automatisch sofort geschlossen (das alles unter Win2k). Worauf sollte der Kommandozeileninterpreter auch noch warten?
    Eventuell kannst du ihm noch einen Wink mit dem Zaunpfahl verpassen, indem du die Anweisung exit ans Ende der Batchdatei schreibst.

    kann ich den prozess iregendwie im hintergrund starten

    Die neuen Prozesse, die du da aufrufst (mysqld-nt.exe und apache.exe), WERDEN schon im Hintergrund gestartet.

    ODER einfach das dos-fenster ausblenden ohne den prozess zu killn ??

    Welchen Prozess? Da bleibt nur noch cmd.exe, und der müsste sich automatisch beenden, wenn er das Ende der Batchdatei erreicht.

    So long,
     Martin

    --
    Realität ist eine Illusion, die durch Unterversorgung des Körpers mit Alkohol entstehen kann.
    1. gudn tach!

      wenn da nicht noch andere Anweisungen folgen, dann verstehe ich nicht, warum das Konsolenfenster (das übrigens KEIN DOS-Fenster ist) bei dir geöffnet bleibt.

      ist bei mir (w2k) auch so. (allerdings wollte ich das auch so.)
      hast du apache bei dir evtl. als service installiert?

      Bei mir rauschen die Anweisungen einfach durch, die entsprechenden Prozesse werden gestartet, und das Konsolenfenster dann automatisch sofort geschlossen (das alles unter Win2k).

      da "rauschen" anweisungen durch?

      bei mir steht da genau eine zeile

      Apache/1.3.31 (Win32) PHP/4.4.2 running...

      ist das vielleicht bei apache 2 anders?

      Worauf sollte der Kommandozeileninterpreter auch noch warten?

      dass man apache mit ctrl+c kickt.

      Eventuell kannst du ihm noch einen Wink mit dem Zaunpfahl verpassen, indem du die Anweisung exit ans Ende der Batchdatei schreibst.

      nein.

      ODER einfach das dos-fenster ausblenden ohne den prozess zu killn ??

      Welchen Prozess?

      "apache" heisst der. ;-)

      prost
      seth

      1. n'Abend!

        hast du apache bei dir evtl. als service installiert?

        logisch, wie sonst?

        da "rauschen" anweisungen durch?

        Ja klar, die Anweisungen, die in der Batchdatei stehen, werden ja bei der Abarbeitung nochmal ausgegeben (ich habe ja nirgends gesagt "echo off").

        bei mir steht da genau eine zeile
          Apache/1.3.31 (Win32) PHP/4.4.2 running...
        ist das vielleicht bei apache 2 anders?

        Die Zeile kommt dazwischen natürlich auch. Aber da das alles relativ schnell durchläuft, hab ich nicht so sehr auf die Einzelheiten geachtet.

        Worauf sollte der Kommandozeileninterpreter auch noch warten?
        dass man apache mit ctrl+c kickt.

        Wieso das? Der startet seinen Service und meldet sich dann bei cmd.exe als fertig. Ich hab da nix mit Ctrl-C oder so.

        Eventuell kannst du ihm noch einen Wink mit dem Zaunpfahl verpassen, indem du die Anweisung exit ans Ende der Batchdatei schreibst.
        nein.

        Nein?
        Ich dachte da an die blöde Angewohnheit von Win9x, ein Konsolenfenster geöffnet zu lassen, obwohl eigentlich alle Anweisungen ausgeführt und beendet sind.

        ODER einfach das dos-fenster ausblenden ohne den prozess zu killn ??
        Welchen Prozess?
        "apache" heisst der. ;-)

        Der ist ja, wie schon erwähnt, gar nicht mehr direkt von cmd.exe abhängig und spielt daher bei dieser Betrachtung gar nicht mit.

        Ciao,
         Martin

        --
        Lache, und die Welt wird mit dir lachen.
        Schnarche, und du schläfst allein.
        1. gudn tach!

          hast du apache bei dir evtl. als service installiert?

          logisch, wie sonst?

          zitat aus dem apache-manual:

          There are two ways you can run Apache:

          * As a "service". This is the best option if you want Apache to automatically start when your machine boots, and to keep Apache running when you log-off.
          * From a console window. Closing this console window will terminate the Apache server.

          man kann zwar auch von konsole aus eine service starten, aber das ist hier nicht gemeint.

          da "rauschen" anweisungen durch?

          Ja klar, die Anweisungen, die in der Batchdatei stehen

          batchdatei?
          beim aufruf
            apache.exe -k start
          wird doch keine batch-datei gestartet (es sei denn, du hast apache.exe.bat angelegt)

          Worauf sollte der Kommandozeileninterpreter auch noch warten?
          dass man apache mit ctrl+c kickt.

          Wieso das? Der startet seinen Service

          ...falls man ihn als service laufen laesst.

          und meldet sich dann bei cmd.exe als fertig. Ich hab da nix mit Ctrl-C oder so.

          ...weil du apache als service laufen laesst.

          Eventuell kannst du ihm noch einen Wink mit dem Zaunpfahl verpassen, indem du die Anweisung exit ans Ende der Batchdatei schreibst.
          nein.

          Nein?

          ja.

          Ich dachte da an die blöde Angewohnheit von Win9x, ein Konsolenfenster geöffnet zu lassen, obwohl eigentlich alle Anweisungen ausgeführt und beendet sind.

          das ist etwas anderes. hier ist es tatsaechlich der webserver, welcher das fenster geoeffnet laesst.

          Welchen Prozess?
          "apache" heisst der. ;-)

          Der ist ja, wie schon erwähnt, gar nicht mehr direkt von cmd.exe abhängig und spielt daher bei dieser Betrachtung gar nicht mit.

          ...wenn man apache als service laufen laesst ;-p
          oder falls man apache als nicht-service aber via "start" startet, z.b.
            start "apache server" "C:\Programme\Apache Group\Apache13\Apache.exe"

          prost
          seth

          1. Moin,

            hast du apache bei dir evtl. als service installiert?
            logisch, wie sonst?
            zitat aus dem apache-manual:
            There are two ways you can run Apache:
            [...]

            ach sooo ...
            Dass man den Apachen auch als gewöhnliche Applikation starten kann, habe ich zwar auch mal gelesen, aber das erscheint mir so abwegig, dass ich jetzt nicht einmal dran gedacht habe.

            batchdatei?
            beim aufruf
              apache.exe -k start
            wird doch keine batch-datei gestartet (es sei denn, du hast apache.exe.bat angelegt)

            Lies nochmal nach: Der OP hat eine dreizeilige Batchdatei vorgestellt. Nach seiner Beschreibung bin ich davon ausgegangen, dass er das Konsolenfenster meint, in dem diese Batchdatei abgespult wird.

            Ich dachte da an die blöde Angewohnheit von Win9x, ein Konsolenfenster geöffnet zu lassen, obwohl eigentlich alle Anweisungen ausgeführt und beendet sind.
            das ist etwas anderes. hier ist es tatsaechlich der webserver, welcher das fenster geoeffnet laesst.

            Wenn er nicht als Service läuft? ;-)

            Schönen Tag noch,
             Martin

            --
            Wissen erwirbt man, indem man immer das Kleingedruckte sorgfältig liest.
            Erfahrung bekommt man, indem man das nicht tut.
            1. gudn tach!

              batchdatei?
              beim aufruf
                apache.exe -k start
              wird doch keine batch-datei gestartet (es sei denn, du hast apache.exe.bat angelegt)

              Lies nochmal nach: Der OP hat eine dreizeilige Batchdatei vorgestellt. Nach seiner Beschreibung bin ich davon ausgegangen, dass er das Konsolenfenster meint, in dem diese Batchdatei abgespult wird.

              ja, schon. aber in seiner batchdatei wir nicht viel "abgespult" vor allem nicht nach dem apache-aufruf...

              Ich dachte da an die blöde Angewohnheit von Win9x, ein Konsolenfenster geöffnet zu lassen, obwohl eigentlich alle Anweisungen ausgeführt und beendet sind.
              das ist etwas anderes. hier ist es tatsaechlich der webserver, welcher das fenster geoeffnet laesst.

              Wenn er nicht als Service läuft? ;-)

              ;-)
              mit apache2 geht das uebrigens immer noch (also wahlweise als service oder als nicht-service), allerdings habe ich jenen noch nicht dazu bringen koennen, mir so eine schoene, aussagekraeftige zeile wie apache 1.3 (a la "hallo, da bin ich, und php ist auch dabei!") auf stdout zu schicken. apache2 schreibt das bloss ins error-logfile und tut auch das erst, wenn er wieder geschlossen wird, obgleich rueckdatierend. seltsam.

              prost
              seth

  4. Moin.

    start \servcd\mysql\bin\mysqld-nt.exe --standalone
    cd \servcd\apache
    apache.exe -k start

    Hab gerade kein M$-OS da zum probieren... Du startest SQL mit "start", warum tust Du das nicht auch mit dem Indianer?

    start apache.exe -k start

    Wenn mich nicht alles täuscht, wird der Kommandointerpreter damit aufgefordert, nicht auf des Ende des aufgerufenen Programms zu warten.

    Gruß Frank

    1. gudn tach!

      start apache.exe -k start

      Wenn mich nicht alles täuscht, wird der Kommandointerpreter damit aufgefordert, nicht auf des Ende des aufgerufenen Programms zu warten.

      das stimmt zwar, allerdings wird dadurch ein neues fenster (mit apache als inhalt) geoeffnet und das genannte problem besteht weiterhin.

      prost
      seth

      1. Hallo,

        Wenn mich nicht alles täuscht, wird der Kommandointerpreter damit aufgefordert, nicht auf des Ende des aufgerufenen Programms zu warten.
        das stimmt zwar, allerdings wird dadurch ein neues fenster (mit apache als inhalt) geoeffnet und das genannte problem besteht weiterhin.

        Das ist zwar korrekt - aber man kann ja mit start /min das neue Fenster minimiert starten. Dann fällt es wenigstens nicht so ins Auge.

        Ciao,
         Martin

        --
        Success should be measured not so much by the position that one has reached in life,
        but by the obstacles one has overcome while trying to succeed.