SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > Off Topic Area

Off Topic Area Hierein gehört alles, was nichts mit PHP, MySQL, Apache oder ähnlichem zu tun hat

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 03.02.2006, 15:05:51
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 53
Beiträge: 4.748
Hintergrundprozesse aus PHP heraus starten

Moin,

mein Job-Service soll mehrere Importe starten, abhängig von der Uhrzeit und der Anzahl Standorte. Wie immer: bis hier her kein Problem.

Das Problem ist, dass der Import im Hintergrund laufen muss, da dieser mehrere Stunden dauern kann.
Ich will also z.B. 3 Importe starten, die dann 3 Minuten, 20 Minuten und 2 Stunden laufen. Das aufrufende Skripte hat sich nach dem Starten der Importe natürlich beendet.
Das ist die Theorie.

Die Praxis ist, dass ich einen Import starte, das aufrufende Skript sich beendet und den Import mit in den Tod zieht.

Hoffe, das war verständlich.

Meine Versuche:
exec(wget http://... &)
--> wartet auf Ende von wget

exec((wget http://...) &)
--> wartet auf Ende von wget

exec(wget --background http://...)
--> wird mit Ende des aufrufenden Skriptes beendet

Die oberen 3 Versuche auch mit "sh" davor, gleiches Resultat.

script.sh: startet wget (alle Varianten mit & und --background versucht)
exec(script.sh http://... &)
--> siehe oben

Ich glaube, ich bin alle Varianten durch, nix klappt.

Wie lautet die Lösung?
Hat PHP was zu bieten? Ich habe nichts gefunden.
Kann man einem Prozess sagen, dass er nicht das Child von PHP sein soll? Sicher nicht, wäre ja wie ein offenes Scheunentor.

Danke
Carsten
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #2  
Alt 03.02.2006, 20:37:43
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Hintergrundprozesse aus PHP heraus starten

ich weiß, es klingt blöd, aber wäre sleep() ne möglichkeit?
Mit Zitat antworten
  #3  
Alt 03.02.2006, 20:45:17
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 53
Beiträge: 4.748
AW: Hintergrundprozesse aus PHP heraus starten

Zitat:
Zitat von feuervogel
ich weiß, es klingt blöd, aber wäre sleep() ne möglichkeit?
Nein. Einerseits soll sich das aufrufende Skript ja nach dem Start der Importe beenden und andererseits weiß ich ja nicht, wie lange ein Import laufen wird.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #4  
Alt 03.02.2006, 22:10:44
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 74
Beiträge: 4.001
AW: Hintergrundprozesse aus PHP heraus starten

Zitat:
Zitat von c4
Wie lautet die Lösung?
Crontab, CLI Shellscript und Semaphorfile.

Das Webfrontend erstellt ein Semaphorfile.
crontab startet ein CLI Script, welches das/die Semaphorfiles abfragt, das/die Files löscht und die entsprechenden Aktionen startet. Ist kein File da, wird die Aktion beendet.
Mit Zitat antworten
  #5  
Alt 09.02.2006, 10:35:02
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 53
Beiträge: 4.748
AW: Hintergrundprozesse aus PHP heraus starten

Man könnte auch die Process Control Functions von PHP nutzen, aber mit Cron, sh und awk geht's doch schneller.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #6  
Alt 10.02.2006, 12:33:12
R. Woitaschik R. Woitaschik ist offline
Anfänger
 
Registriert seit: Nov 2004
Ort: Düsseldorf
Beiträge: 99
AW: Hintergrundprozesse aus PHP heraus starten

Hi c4,
deine Version "exec((wget http://...) &)" ist schon OK. Du mußt nur die Ausgabe des wget in eine Datei umleiten. Ansonsten versucht wget auf Standard-Out (d.h. Console) zu schreiben, diese gibt es aber nicht mehr, da dein Initial-Skript bereits beendet ist.

z.B.
Code:
exec('wget "http://..." >/dev/null &2>/dev/null &');
sollte genau das bringen, was Du willst.

Gruß
Richard
Mit Zitat antworten
  #7  
Alt 10.02.2006, 14:16:51
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 53
Beiträge: 4.748
AW: Hintergrundprozesse aus PHP heraus starten

Schöne Idee, klappt aber auch nicht.
Mache ich es mit & am Ende, dann zeigt er mir die Website komplett an, wartet aber trotzdem bis zum Ende des Imports.
Versuche ich es zusätzlich noch mit dem Parameter --background geht alles flotter. Aber nur, weil der Import abgebrochen wird.

Kurzum: nix sich geändert hat.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #8  
Alt 06.12.2006, 16:36:19
marco001 marco001 ist offline
Anfänger
 
Registriert seit: Apr 2005
Beiträge: 4
AW: Hintergrundprozesse aus PHP heraus starten

das is die lösung für windows für Linux einfach einen cron starten:

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("test2.cmd", 0, false);

andere Möglichkeiten unter:

http://www.somacon.com/p395.php
Mit Zitat antworten
  #9  
Alt 15.12.2009, 12:21:21
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 35
Beiträge: 1.408
AW: Hintergrundprozesse aus PHP heraus starten

ich pushe das mal wieder aus der ganz alten Vergangenheit raus ... hat schon jemand eine Lösung? (Debian)

Interessant wäre ja auch herauszufinden ob ein Prozess dann eben im BG läuft, oder ihn sogar zu killen!
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #10  
Alt 15.12.2009, 12:48:59
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 14
Beiträge: 2.269
AW: Hintergrundprozesse aus PHP heraus starten

Debian?
Das folgende gilt für SuSE.
Sollte aber in Debian nix anders sein.

Ich starte sowas (ewig lange MySQL Dumps und Restore) über den xinetd der kennt das Laufzeit Problem nicht. Semaphore nicht vergessen.
Auch lassen sich so Daemon start/stop Scripte aufrufen, welche Prozesse in den Hintergrund schicken.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie man durch PHP von der Schule fliegen kann?! Jacki Off Topic Area 2 06.08.2004 13:20:39
Programme per PHP starten und beenden Golf-Onkel PHP Grundlagen 11 25.06.2004 22:36:53
php script zeitgesteuert starten paulussus PHP für Fortgeschrittene und Experten 2 01.06.2003 20:48:36
php starten frage01 PHP für Fortgeschrittene und Experten 13 16.08.2002 16:31:45
Frage: Mit PHP über CGI ein Programm starten ths PHP für Fortgeschrittene und Experten 0 14.06.2002 20:05:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:52:41 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.


© 2001-2023 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt