Hallo LUG,

bitte nicht steinigen, aber ich habe da mal einige Fragen zu  
Shell-Skripten und PHP. Wem die Abkürzung PHP stört, kann vermutlich  
auch Phyton oder Ruby einsetzen ;-). Nun aber los:

Die Idee ist folgende: Einer Menge User soll ein Web-Interface zur  
Verfügung gestellt werden. Dieses Interface beinhaltet eine Liste von  
Shell-Scripten, die aufgerufen werden können (klick auf grünem Pfeil).  
Es sollen Start- und Endzeit, ob das Programm läuft, ob es auf stdout  
bzw stderr was geschrieben hat angezeigt werden sowie die Möglichkeit  
des Abbruchs (klick auf rotes Kreuz) geben. Die Shell-Skripte sollen  
im Hintergrund gestartet werden.

Was funktioniert: Starten des Programmes, abbrechen des Programmes,  
Startzeit des Programmes.

Was nicht funktioniert: Das Programm im Hintergrund starten.
Ich starte das Skript per

$command = 'cd ' . $programmpfad . ' && ' . 'nohup ./' . $programmname  
               . ' > ' . $logFile . ' 2> ' . $errorFile . ' & echo $!';

Auf der Shell sieht es ungefähr so aus:

cd /mein/pfad/zum/programm && nohup ./programmname > run.log 2>  
error.lug & echo $!

Damit hätte ich auch die PID, über die ich kill ausführen kann. Nun  
wartet aber trotzdem PHP bis das Programm im Hintergrund fertig ist  
mit werkeln. Irgendwo ist das ja logisch, aber nicht gewünscht. Hat  
jemand eine Idee? Also PHP soll das Skript starten und mir mitteilen:  
Läuft. Das Skript soll werkeln. Wenn ich die PHP-Seite aktualisiere  
soll mir irgendwann angezeigt werden: Läuft nicht mehr, erfolgreich  
beendet oder Fehler (möglich über die Logfiles).

Was auch nicht funktioniert: Zeitmessung

Ich will wissen, wie lange das Programm im HG werkelte. Nutze ich  
time, bekomme ich die PID von time (war auch interessant  
herauszufinden, dass es einmal time als eigenständiges Programm und  
einmal time als Bash-Befehl gibt). Hat jemand eine Idee wie ich ohne  
time die Laufzeit bekomme?

Natürlich bin ich auch für ganz andere Ideen offen.

Vielen Dank für eure Mithilfe,

Falk



_______________________________________________
Lug-dd maillist  -  [email protected]
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Antwort per Email an