Programm im Hintergrund laufen lassen

Dieses Thema im Forum "Linux OS" wurde erstellt von Lumio, 18.02.2009.

  1. Lumio

    Lumio Tripel-As

    Dabei seit:
    11.03.2008
    Beiträge:
    195
    Zustimmungen:
    0
    Hallo! Vor langem ist das einmal ein Thema gewesen, weiss aber gerade nicht genau, nach was ich suchen soll.
    Und zwar möchte ich im Hintergrund ein PHP-Programm laufen lassen. Irgendwann kam mir "screen" in den Kopf, aber ich bin mir nicht sicher.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    na du sagst es doch.
    man screen
     
  4. #3 gropiuskalle, 18.02.2009
    gropiuskalle

    gropiuskalle terra incognita

    Dabei seit:
    01.07.2006
    Beiträge:
    4.857
    Zustimmungen:
    0
    Ort:
    Berlin
    Gibt aber auch noch wesentlich simplere Möglichkeiten.

    Code:
    $php-programm &
    Code:
    man bg
     
  5. #4 Gott_in_schwarz, 18.02.2009
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    nohup und screen haben den Vorteil, dass man sich ausloggen kann, die Kommandos aber weiter laufen.
     
  6. Lumio

    Lumio Tripel-As

    Dabei seit:
    11.03.2008
    Beiträge:
    195
    Zustimmungen:
    0
    Genau das brauch ich. Einen Prozess in den Hintergrund schieben bringt mir da wenig.

    Auch wenns jetz weniger dazu passt:
    Kann ich irgendwie eine Art Wiedererkennung für dieses PHP-Programm machen? Weil der Befehl php -f datei.php lässt bei den Prozessen nur ein weiteres php auftauchen.
     
  7. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Meinst Du vielleicht, die PID, d.h., die Prozess-Nummer? Unter bash ist die pid des zuletzt gestarteten Befehls in der Variablen "$!". Wenn Du also Dein Program mit 'php -f datei.php' startest, machst Du am besten folgendes:
    Code:
    php -f datei.php & echo $! > myphp.pid
    
    Das gilt zumindest fuer die bash. Dann ist in der Datei myphp.pid die PID des Prozesses abgespeichert. Unter /proc/$(cat myphp.pid) findest Du dann alle moeglichen Informationen zu diesem Prozess.
     
  8. Lumio

    Lumio Tripel-As

    Dabei seit:
    11.03.2008
    Beiträge:
    195
    Zustimmungen:
    0
    Okay... kann ich das auch mit nohup machen?
    also dann halt
    Code:
    nohup php -f datei.php & echo $! > myphp.pid
    Ich trau mich das nämlich noch nicht testen :D
     
  9. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Ja, kannst Du.
    Dann bastel Dir doch ein Skript das etwas Unkritisches erledigt und probiere Dich daran aus.
     
  10. Lumio

    Lumio Tripel-As

    Dabei seit:
    11.03.2008
    Beiträge:
    195
    Zustimmungen:
    0
    Danke! Passt, werd ich machen.
     
  11. #10 gropiuskalle, 19.02.2009
    gropiuskalle

    gropiuskalle terra incognita

    Dabei seit:
    01.07.2006
    Beiträge:
    4.857
    Zustimmungen:
    0
    Ort:
    Berlin
    Darf ich mal kurz zwischenfragen, wozu 'echo $! > myphp.pid' dient? Nach einem '&' wird doch sowieso die pid ausgegeben, auch wenn man nohup voranstellt.

    Code:
    kalle@hoppers:~> nohup konqueror &
    [1] 6689
    Kapier ich jetzt nicht so ganz.
     
  12. #11 Gott_in_schwarz, 19.02.2009
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Allerdings nicht auf stdout. Und auch nicht auf stderr. Wie man das in eine Datei umleiten könnte, wüsste ich grad nicht. (Und diese "visuelle Benachrichtigung" nützt einem in nem Script (welches normalerweise mit keiner tty verbunden ist) herzlich wenig.)
     
  13. #12 gropiuskalle, 19.02.2009
    gropiuskalle

    gropiuskalle terra incognita

    Dabei seit:
    01.07.2006
    Beiträge:
    4.857
    Zustimmungen:
    0
    Ort:
    Berlin
    Das war der springende Punkt, danke. Nur kam die Idee, das ganze in ein Skript zu packen, ja erst nach dem 'echo' Zusatz - wirkt halt etwas abstrakt, wenn man z.B. noch nie mit php zu tun hatte oder die Nacht davor nicht geschlafen hat.

    Weitermachen, please.
     
  14. Lumio

    Lumio Tripel-As

    Dabei seit:
    11.03.2008
    Beiträge:
    195
    Zustimmungen:
    0
    Hey, hab hier ein kleines Problem. Ich hab erwartet, dass wenn ich jetzt einmal
    Code:
    nohup php -f datei.php
    mach, dass alles klappt, aber tut es nicht.
    nohup bleibt aktiv, solange auch das php-script aktiv ist. Genauso wie bei screen. Wie kann ich das ändern?
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 Gott_in_schwarz, 20.02.2009
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    nohup musst du in den Hintergrund schicken und screen detachen.
    nohup macht ja nix anderes als das hangup-signal "aufzufressen". Deswegen bleibt der Hintergrund-Job auch nach dem logout aktiv, aber in den Hintergrund schicken musst du es schon.
    Code:
    $ nohup php -f datei.php &
    Wenn du screen benutzt musst du den Befehl in screen absetzen und die session via ctrl-a d detachen.
     
  17. #15 Lumio, 20.02.2009
    Zuletzt bearbeitet: 20.02.2009
    Lumio

    Lumio Tripel-As

    Dabei seit:
    11.03.2008
    Beiträge:
    195
    Zustimmungen:
    0
    Ah danke :) ich hab dann immer Ctrl+C gedrückt :)
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Sorry... ein Problem hab ich noch:
    Und zwar möcht ich via PHP selber dann auch noch einen Prozess starten, der aber unabhängig vom PHP-Script laufen soll. Wie mach ich das? Das kann ich ja nicht genauso machen wie im Bash.
     
Thema: Programm im Hintergrund laufen lassen
Besucher kamen mit folgenden Suchen
  1. raspberry programm im hintergrund laufen lassen

Die Seite wird geladen...

Programm im Hintergrund laufen lassen - Ähnliche Themen

  1. Programme im Hintergrund

    Programme im Hintergrund: Hallo, auch wenn der Thread-Titel nicht direkt mit Programmieren zu tun hat, hoffe ich, dass ich hier richtig bin. Ich verwalte in meiner Freizeit...
  2. Standard- Java Programm im Hintergrund (Pipes, Ports oder Argumente)

    Standard- Java Programm im Hintergrund (Pipes, Ports oder Argumente): Hi ihr, :) ich möchte ein Standard- Java- Programm "im Hintergrund" lauffähig machen. Dabei ist mir erstmal egal, ob es sich wie ein...
  3. Welche Distri für Programming from the Ground Up

    Welche Distri für Programming from the Ground Up: Hallo! Ich möchter gerne das Buch Programming from the Ground Up durcharbeiten. savannah_nongnu_org/projects/pgubook/ Da geht es um Programmieren...
  4. Externes Programm mit Script ausführen?

    Externes Programm mit Script ausführen?: Hallo, ich würde gern ein Script zum klonen von festplatten schreiben z.B. mit dem Programm Mondo Rescue. Ist es möglich externen Programmen...
  5. Jetbrains gibt JVM-Programmiersprache Kotlin 1.0 frei

    Jetbrains gibt JVM-Programmiersprache Kotlin 1.0 frei: Jetbrains, Entwickler der freien Entwicklungsumgebung für Java, Grails und einige andere Programmiersprachen IntelliJ IDEA, hat die selbst...