Antworten
Dein starkt vereinfachtes Beispiel zeigt nur einen Aufruf - daraus kann man nun gar nichts mehr erkennen.
2.
Es geht in erster Linie auch weniger um den Aufruf, da dieser ja funktioniert.
Mir geht es mehr um die Problematik und ich denke diese sollte durch den ersten Beitrag erklärt worden sein.
Sollte es dazu noch Fragen geben, werde ich gerne mehr Hintergrundwissen zur Verfügung stellen.
Der Aufruf soll lediglich zeigen das ich mit shell_exec arbeite und mit welcher Methode ich mir die PID vom neu gestarteten Prozess hole.
3.
Normalerweise werden alle Kindprozesse von PHP aus Sicherheitsgründen recht bald beendet. Selbst "nohup" ändert daran nicht _unbedingt_ was.
4.
Wenn das denn so ist, was würdest du denn dann an meiner Stelle machen um das Problem zu beseitigen?
Soll ich nur Kennzeichen in einer DB/Datei setzen und die Dienste dann über einen Chronjob starten und beenden?
5.
Was möchtest du denn überhaupt erreichen...
Wenn wir das wüssten, könnte man evtl einen Weg vorschlagen.:)
6.
Erreichen würde ich gerne das was ich im ersten Post geschrieben habe :-) Meherer Prozesse starten.
In meinem Fall handelt es sich um das verwalten von Audio und Videostreams.
Diese möchte ich über eine WebOberfläche so verwalten, dass ich diese auch starten und stoppen kann.
Soweit ist auch schon alles fertig, jedoch mit der Einschränkung das ich derzeit nur einen Prozess starten kann.
7.
<glaskugel>
Falscher Ansatz!
Schreib dir einen Daemon welcher die Dateien(Streams) ausliefert.
Da baust du noch einen Flansch dran, welchen du aus PHP mit fsockopen erreichen kannst.
Fertig!
Kein gehampel mit Prozessen, die aus PHP gestartet werden müssen(geht ja auch gar nicht)
</glaskugel>
8.
OK, aber das ist etwas wo ich noch keine Erfahrungen habe.
Besonders nicht auf der Unix Seite. Kann zwar super meine Server bedienen aber Programmiert habe ich bis dato nur auf Windows oder eben Web.
Wo finde ich Ideen oder Konzepte? Oder wie würdet ihr euch da ran machen?
9.
Zitat:
ch bis dato nur auf Windows
Bevor ich dir alles vorbete...
Was ist denn deine lieblings Programmiersprache?
Und ja! Die tuts auch uner Linux..:)
10.
Also am liebsten ntweder Delphi (Kylix) oder eben C#. C selbst ist mir persönlich etwas zu rustikal, was aber nicht heisst das es keine sehr gute Sprache ist. Aber du hast mich ja nach meiner Lieblingssprache gefragt.
PS: Ist HTML eine Programmiersprache? :-)
11.
http://de.wikipedia.org/wiki/Lazarus_(Entwicklungsumgebung)
Damit sollte ein pascallianer weiterkommen :)
Da sind Beispiele und fertige Socket Komponenten dabei...
12.
Ich versteh das aber schon richtig, ein Projekt für verschiedene Systeme zu kompilieren, oder?
Also kann ich auch her gehen unter Windows entwickeln und für Unix kompilieren?
13.
entwickeln ja...
Aber kompilieren schon auf dem Zielsystem...
14.
Naja gut, das ist ja noch zu verkraften. Bin schon dabei mir das ganze mal anzuschauen.
Bis bis jetzt sehr positiv überrascht. Kannte das noch garnicht.
Dann sag ich mal danke. Wenn ich Probleme zwecks der Programmierung habe melde ich mich wieder.
Denn einen eigenen Deamon habe ich noch nicht geschrieben den ich dann über php ansteuer.
Aber macht das ganze ja auch weider etwas interessanter.
15.
Zitat:
Es geht in erster Linie auch weniger um den Aufruf, da dieser ja funktioniert.
Mir geht es mehr um die Problematik und ich denke diese sollte durch den ersten Beitrag erklärt worden sein.
Da denkst Du falsch und irrst gewaltig.
Zitat:
Sollte es dazu noch Fragen geben, werde ich gerne mehr Hintergrundwissen zur Verfügung stellen.
Wie ich inzwischen sehe, gibt es da nix was "Hintergrundwissen" heißen könnte. Ich habe solches "Hintergrundwissen" - aber Du bist ja der Meinung, dass Deine spärlichen Informationen ausreichend sind (Zur Info: sind sie nicht.).
Ab jetzt brauchst Du Glück, helfen kann ich Dir nicht (s.o.).
16.
Auch ich kann mich irren. Niemand ist unfehlbar. Gerne würde ich aber auch noch mit dir darüber reden.
Wenn meine Informationen doch so löchrig waren versuche ich den Aufruf zu präzisieren.
Nur dazu würde ich gerne wissen was dir denn an Informationen fehlt.
Denn den Aufruf den ich auf der Shell absetze besteht lediglich aus 4 Teilen.
1. nohup
2. mein dienst den ich starten möchte
3. Die Parameter mit denen ich den Dienst starte. In meinem Fall handelt es sich hierbei um den Namen der Configdatei
4. Ausgabe der PID auf der Konsole und somit der Rückgabewert des Aufrufes shell_exec();
Ich hoffe es ist nun genauer? Wenn nicht lass ich mich bitte wissen. Bin sehr an deiner Meinung interessiert und wollte niemanden vor den Kopf stossen.
17.
Ansonsten kann ich nur immer wieder Java empfehlen, denn das ist:
- komplett plattfomunabhängig (solangs ne JVM gibt)
- sehr viel schneller als immer behauptet wird (die aktuelle Java 6 besonders)
- umfangreich: für quasi jeden Anwendungsfall gibt es fertige, durchdachte Bibliotheken
- quasi absturzsicher
- quelloffen (jetzt neu ;) )
- in vielen Feldern inzwischen Industriestandard
- leicht auf dem Zielsystem zu installieren (Anwendungen werden einmal kompiliert und nicht für jedes Zielsystem extra)
Gerade im Client-Server-Bereich sind das alles recht nützliche Vorteile.
18.
Stimmt auch wieder. Java wäre dafür auch noch eine Alternative. Werd ich mir auch mal anschaun.
Mal wieder ein BEweis dafür das man vor lauter Bäumen den Wald nicht sieht. Danke noch mal für den Tip :-)