• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Möglichkeit Anwendungen über html-page zu starten

Fat_Fox

Hacker
ich habe eine allgemeine frage zur prinzipiellen machbarkeit einer idee, deren genaue realisierung dann sicher noch mehr fragen aufwerfen wird aber das können wir ja dann später klären, aber erstmal:

ist es prinzipiell möglich über einen link auff einer html seite eine anwendung z.B. XMMS zu starten

anders gesagt:

wenn ich mir einen apache auf meinem system einrichte der nur für die lokale nutzung gedacht ist, d.h zugriff nur lokal und über internes netzwerk, und mir dann ne htmlpage mache wo ich einen link draufmache

kann ich dann ein programm auf dem server starten ?

wenn ja...wie klappt das, habt ihr ev. ein paar stichworte damit ich mich einlesen kann hab was von cgi skripten gehört...die kann man dann wohl in ettlichen programmiersprachen schreiben...bitte um aufklärung

für Hilfe danke ich euch im vorraus
 

Frankie777

Advanced Hacker
PHP wäre für sowas geeignet, ausgezeichnet beim Apachen integriert, nicht schwer zu erlernen und bietet viele Möglichkeiten

http://www.php.net/manual/de/ref.exec.php
 
OP
F

Fat_Fox

Hacker
thx für deine antwort,

also ich habe mich mittlerweile etwas belesen und glaube das cgi das richtige stichwort gewesen ist.

ich kann damit also mit php,perl,phyton oder ruby cgi-scripte schreiben die z.B. bei php und perl die exec funktion benutzen um externe programme aufzurufen.

stimmt das soweit ?
 

Bartlin

Member
Das ist korrekt.

Jedoch solltest du vorher überprüfen, wer alles an dieses Skript herankommt, da man mit Exec direkt und ungeschützt auf das System zugreift (so als würde jemand direkt am Rechner rumklicken).
 

nbkr

Guru
PHP wird für sowas nicht gehen - der Webserver beendet normalerweise die Ausführung eines Scriptes das länger als 30 Sekunden läuft.

Wenn Du XMMS über eine Webseite starten willst klingt das schwer danach, dass Du Dir eine Jukbox bauen willst. Sowas gibts schon. MPD ist in Music Player Daemon welcher auf einem Server installiert ist und dort Musik abspielen kann. Es gibt ethlich Clients dafür. Einige davon sind webbasiert. Mir persönlich ist gmpc lieber - ist ein schlanker Client für Gnome.

http://www.musicpd.org/
 
OP
F

Fat_Fox

Hacker
thx@ all

das ganze hat folgenden anderen hintergrund:

ich bastle gerade an einem car-pc, also einem pc den ich in mein autochen einbauen möchte, dieser wird dann über einen touchscreen bedient.

das ding ist jetzt das es umständlich ist die benötigten anwendungen manuell über das menü zu starten.

deshalb dachte ich mir man könnte ein script schreiben das diese anwendungen startet und das von einer website aus aufrufen.

sodass er nach dem booten diese html page anzeigt, kann man ja erreichen wenn man das ding vor dem runterfahren einfach nicht zu macht, und mann dort per link oder formularbutton die entsprechenden anwendungen starten kann

@nbkr
die 30 sekunden reichen mir ja aus um den startbefehl abzusetzen, danach kann er das script ja meinetwegen beenden, ich benötige ja keinen feedback ob das programm gestartet wurde, das seh ich ja dann

@Bartlin
Sicherheit spielt hier keine Rolle da auf den apachen nur von localhost zugegriffen wird, und das auch nur von mir, der pc hängt ja nicht im internet sondern in meinem autochen *g*
 

nbkr

Guru
Fat_Fox schrieb:
@nbkr
die 30 sekunden reichen mir ja aus um den startbefehl abzusetzen, danach kann er das script ja meinetwegen beenden, ich benötige ja keinen feedback ob das programm gestartet wurde, das seh ich ja dann

Das nützt trotzdem nicht. Wenn das Script beendet wird, werden auch alle Prozesse beendet welche das Script gestartet hat. Kein Script, kein XMMS, keine Musik.
 
OP
F

Fat_Fox

Hacker
ist das ein php typisches problem oder ist das generell mit cgi-scripten so ?

ich habe mich nemich kurz durch das pearl tutorial von selfhtml gewurschtelt und dort mehrere funktionen gefunden die systembefehle absetzen können, auch eine die einen echten eigenen prozess für das gestartete programm bildet.

edit_1:

kann man dem indianer über ne konfigeinstellung diese unart nicht abgewöhnen ?

edit_2:

Die Pearl Funktion die ich meine:
http://de.selfhtml.org/perl/funktionen/systemaufrufe.htm#exec
 

nbkr

Guru
PHP hat selbst eine Beschränkung mit eingebaut. Das kann man abschalten. Dem Apache könnte man das evtl. auch abgewöhnen ich denke das passiert bei allen Arten von CGI Scripten, wobei ich nicht weiß welche Effekte das mit sich bringt. Da der Prozess dann dauerhaft läuft könnte das ziemlich auf die Performance schlagen - ist aber nur eine Vermutung.
 
OP
F

Fat_Fox

Hacker
ich werd heut abend mal die generellen scriptfähigkeiten meines indianers überprüfen, wenn es gehen sollte werde ich einfach mal versuchen das in pearl zu realisieren und dann werden wir ja sehen, ich hoffe wirklich das das funktioniert, ich hielt meine idee nemich für ziehmlich genial

so nun zu meinen testergebnissen:

um generell zu testen ob scripte ausgeführt werden habe ich das beispiel von selhtml.org benutzt

Code:
#!/usr/bin/perl -w

use strict;

print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html><head><title>Test-Ausgabe</title></head><body>\n";
print "<h1>Hurra, es klappt!</h1>\n";
print "</body></html>\n";

das funzt lokal wie im webbrowser ordentlich nur das halt auf der kommandozeile die Print-Befehle so ausgegeben werden wie sie da stehen man also das uninterpretierte html zu sehen bekommt aber das ist ja ok.

dann habe ich versucht mir ein script zu schreiben das xmms startet

Code:
#!/usr/bin/perl -w

#starte xmms
system("/usr/bin/xmms");

das funzt von der konsole ganz ausgezeichnet aber einaufruf im browser bringt:

Code:
Server error!
 The server encountered an internal error and was unable to complete your request. 
 Error message: 
Premature end of script headers: xmms.pl 
 If you think this is a server error, please contact the webmaster. 
Error 500
tux
 Wed Mar 8 18:08:10 2006
 Apache/2.0.54 (Linux/SUSE)

wenn ich das xmms script mit dem test-script von selfhtml kombiniere bekomme ich die ausgabe des test scripts aber gestartet wirdxmms auch nicht.

für hilfe danke ich euch wie immer im vorraus
 

hardy1234

Newbie
Das funktioniert auch mit echten binarys, allerdings sind die programmeigenen verzeichnisse ein problem, weill diese allgmein nicht auf den server zugreifen können.

Aber vom Grundsatz her ist das machbar, wenn sich das prog seine verzeichnisse auf dem lokalen rechner anlegt. Den Daten-Betrieb kann man durchaus auch über tcp lösen, die website macht letztlich auch nichts anderes.

mfg
Hardy
 
OP
F

Fat_Fox

Hacker
gut dann sind wir uns so erstmal einig, das es funzen kann allerdings sind meine versuche das zu bewerkstelligen gründlich daneben gegangen, schat dazu bitte in den gesonderten thread.

thx @ all
 

Pilz

Member
Sag mal Fat_Fox, warum erstellst du dir nicht einfach Verknüpfungen auf dem Desktop zu den jeweiligen Programmen? Das macht die ganze Sache doch erheblich einfacher. Du kannst doch auch Kontrolleisten restlos entfernen, so daß du nur noch die Icons der Verknüpfungen siehst.

Oder hab ich hier jetzt etwas komplett falsch verstanden?

Grüße
Stefan
 
Oben