Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »flosch« (08.10.2012, 10:12) aus folgendem Grund: Problem gelöst.
Du willst das Script starten oder der Webserver soll es starten?eigentlich will ich "nur" ein Script starten
Das würde mich dann auch noch interessieren, wie das abläuft.es gibt einen "Treiber" über den dann die Kommunikation vom Script zum Webserver stattfindet
Benutzerinformationen überspringen
User
Registrierungsdatum: 14.09.2005
Derivat: Xubuntu
Architektur: 64-Bit PC
Desktop: XFCE
heisst das ein Child-Prozess, oder brauchst du einen Thread? Was muss dieses Script dann machen?Zitat
ein Script starten, dass dann im eigenen Prozess laufen soll,
Benutzerinformationen überspringen
User
Registrierungsdatum: 28.07.2011
Derivat: Kein Ubuntu-Derivat
Version: gar kein Ubuntu
Architektur: 64-Bit PC
Desktop: unbekannt
Zitat
Weiss jemand wo man dieses Zeug, welches Poettering raucht, kaufen kann? Und brennt das dann auch mit nem normalen Feuerzeug? Oder brauch ich da jointd dazu, um den Rauch zu erzeugen?
Benutzerinformationen überspringen
User
Registrierungsdatum: 14.09.2005
Derivat: Xubuntu
Architektur: 64-Bit PC
Desktop: XFCE
Also Polling mit HIlfe von Javascript.Zitat
In der Zeit läuft auf dem Client ein Javascript das sekündlich den
Status vom Webserver abruft (also muss der ansprechbar sein und darf
nicht darauf warten, dass besagtes Script oben fertig wird...),
Ich hab die KLone-Seite überflogen und kenne mich mit dem Ding erstmal noch nicht aus. Aber bist du sicher, daß der Server wirklich stehen bleibt und auf das Ende des Scripts wartet, und nicht nur auf irgendeine Rückmeldung von diesem?ein Script starten, dass dann im eigenen Prozess laufen soll, und bei dem mein Hauptprogramm (der Webserver) nicht auf die Beendigung wartet
Genau. Wobei da halt im Sekundentakt eine "Webseite" aufgerufen wird, die den aktuellen Status ausliest und an meine Wartende Seite weiterleitet. Das Problem ist, dass ich halt während der Ausführunf des Scriptes den Zustand des Updates (was das Script halt ausführt) darstellen will, sonst habe ich halt eine Webseite die n Minuten hängt und wo man im Zweifel nicht weiß ob da noch was läuft oder jetzt der Webserver/das Board/WattWeissIsch abgestürzt ist.Zitat
Also Polling mit HIlfe von Javascript.
Genau, wobei der Server aber schon beim Aufbau der Polling-Seite hängt. Beim KLone kann ich halt mein Scripting direkt in der Webseite ausführen, d.h. nach dem Upload der Datei wird die neue Seite aufgerufen, diese startet dann das Shell-Script (soll es zumindest) und soll im zweiten Schritt dann sekündlich das Status-Polling machen.Zitat
Was macht der Webserver während dem das Skript läuft? Nichts ausser Antworten auf die Polling-Anfragen des Java-Skript-Clients?
Richtig.PS: Du kommunizierst bei deiner Beschreibung immer mit dem Webserver-Prozess, also musst du eine Kommunikation zwischen dem Webserver-Prozess und deinem Skript herstellen.
Wie soll das gehen? Außerdem ist es doch egal ob ich meine Seite XYZ.html per Javascript anpasse oder die Index.html?Primitive Lösung ist du änderst via Skript einfach die "Index.html" im Rootverzeichnis des Webservers, das Ganze ist dann nicht sehr intelligent besonders bei Mehreren Verbindungen zum Webserver...
Im Prinzip mache ich genau das, wobei ich halt statt CGI halt den Onboard-C-Code des Servers benutze.PPS: Vielleicht wäre ein CGI-Skript auch nicht so falsch...
Ja, ich habe nämlich gerade die Info von den KLone-Leuten bekommen, dass der Aufruf von "System()" immer "blocking" ist. Das haben die wohl so eingebaut.Ich hab die KLone-Seite überflogen und kenne mich mit dem Ding erstmal noch nicht aus. Aber bist du sicher, daß der Server wirklich stehen bleibt und auf das Ende des Scripts wartet, und nicht nur auf irgendeine Rückmeldung von diesem?
Ja, nur mein Grundgedanke in dem Fall ist: Shellscript asynchron starten um das Update (der Boardfirmware) laufen zu lassen, derweil soll die Webseite warten, und in regelmäßigen Abständen den Status zurückliefern.Der Grundgedanke beim Aufruf externer Programme ist ja meistens die Erzeugung dynamischer Inhalte und auf die muß er dann natürlich warten. Dann wäre er mit einem simplen "OK" auch schon zufrieden und könnte tun, was immer von ihm verlangt wird, während das Script noch ewig weiterlaufen kann.
Benutzerinformationen überspringen
User
Registrierungsdatum: 14.09.2005
Derivat: Xubuntu
Architektur: 64-Bit PC
Desktop: XFCE
Du weisst das Javascript im Browser des Clients läuft? Die Idee mit der Index.html anzupassen ist via Shellskript eine Datei überschreiben, das läuft dann direkt auf deinem Webserver. Ist aber auch mehr oder weniger ein Quick-Dirty-Hack.Zitat
Wie soll das gehen? Außerdem ist es doch egal ob ich meine Seite XYZ.html per Javascript anpasse oder die Index.html?
Du musst im Prinzip ja gar nichts Asynchrones mit mehreren Prozessen machen. Von dem her ist Blockierend ja sogar gewünscht oder?Zitat
Starte was, bearbeite das auf dem Server und gib mir in Regelmäßigen Abständen den Zwischenstand.
Der Vorgang selbst ist sicher keine Spezialanwendung. Der Server kann ja jederzeit die jeweils letzte in HTML eingebettete Ausgabe des Scripts (oder eben des "Treibers" *) ausliefern, wenn der Client danach fragt. Aber das machst du ja sowieso per JS. Das Script könnte auch eine "refresh"-Direktive in die Seite einbauen, so daß sie der Client auch ohne JS neu laden würde. Alles schon dagewesen, nur daß die gängigen Webserver eben normalerweise nicht stehen bleiben und warten. So gesehen ist also doch eine Spezialanwendung mit im Spiel, aber damit ist nicht die Methode gemeintAn sich erscheint mir das nicht unbedingt als Spezialanwendung, es gibt sicherlich reichlich Ansätze wo der Gedanke ist: Starte was, bearbeite das auf dem Server und gib mir in Regelmäßigen Abständen den Zwischenstand.
Das ist aber bei meinem Linux hier genauso eigentümlich. Aus der man-page:das Problem lag allerdings u.a. bei der etwas eigentümlichen Art und Weise wie man, zumindest auf dem benutzten Embedded-Linux, exec[v]() aufruft, da parameter 0 (arg[0]) eben nicht der erste Parameter ist, sondern den Name des Aufzurufenden Programms
Zitat
int execv(const char *path, char *const argv[]);
The execv() and execvp() functions provide an array of pointers to null-terminated strings that represent the argument list available to the new program. The first argument, by convention, should point to the filename associated with the file being executed.
Benutzerinformationen überspringen
User
Registrierungsdatum: 23.06.2009
Derivat: anderes Ubuntu-Derivat
Version: gar kein Ubuntu
Architektur: 64-Bit PC
Desktop: GNOME 3.0
Andere Betriebssysteme: Debian 7.0 wheezy
Sponsorenwerbung: |
Hardware, Computer, PCs, Notebooks & Laptops mit Linux |
Forensoftware: Burning Board®, entwickelt von WoltLab® GmbH
Individuelle Notebooks Laptops - Individuelle Computer PCs - Linux Notebooks & Computers
Lastminute - Ubuntu Linux - Abmahnung - Geek und Nerd Shirt Shop
T-Shirts - sanierung wien