Seite 2 von 4

Verfasst: Dienstag 25. Januar 2005, 21:21
von Slalomsk8er
jens war schneller ;)

Gruss, Dominik

Verfasst: Mittwoch 26. Januar 2005, 14:53
von Leonidas
Ja mei. Dafür bin ich manchmal schneller als mawe, und auch jeden Tag da :)

Verfasst: Mittwoch 26. Januar 2005, 17:51
von Slalomsk8er
:lol:

Re: Transparente Durchreiche zur Konsole?

Verfasst: Mittwoch 26. Januar 2005, 21:43
von jens
Noch mal zurück zum Thema:
Slalomsk8er hat geschrieben:Wie mache ich eine transparente Durchreiche zur Konsole (bash, cmd, usw.. )?
Hast du evtl. eine Lösung zu meinem Problem:
http://python.sandtner.org/viewtopic.php?t=2611

Verfasst: Sonntag 30. Januar 2005, 00:50
von Gast
subprocess -- Subprocess management

Kenn sich jemand damit aus?

Es scheint so, als ob dieses Modul benutzen sollte.

Gruss, Dominik

Verfasst: Sonntag 30. Januar 2005, 01:50
von Slalomsk8er
Ja mei. Dafür bin ich manchmal schneller als mawe, und auch jeden Tag da
mawe scheint aber für meine Problemstellung "hilfreicher" zu sein, auch wenn er nicht direkt antwortet :wink: http://python.sandtner.org/viewtopic.php?t=1964

Code: Alles auswählen

import os
f = os.popen('gnuplot -persist','w')
print >> f, "plot sin(x)" 
Fast eine kleine Erleuchtung :lol: nun muss ich noch die beiden Gegenrichtungen (stout und sterr) auslesen können und dann bin ich bald fertig.
Eher nicht, dann gehts erst richtig los, ich liebe ncurses (ein Fluch das teil :wink: "n"curse"s" -> Fluch :lol: ).

Gruss, Dominik

Verfasst: Sonntag 30. Januar 2005, 18:11
von Leonidas
Slalomsk8er hat geschrieben:mawe scheint aber für meine Problemstellung "hilfreicher" zu sein, auch wenn er nicht direkt antwortet :wink: http://python.sandtner.org/viewtopic.php?t=1964
:cry:
Slalomsk8er hat geschrieben:Eher nicht, dann gehts erst richtig los, ich liebe ncurses

Ich weiß nicht ob ncurses irgendwelche ASCII Sequenzen produziert, oder wie es arbeitet..

Verfasst: Montag 31. Januar 2005, 01:08
von Slalomsk8er
Nicht traurig sein (sonst bekomme ich Schuldgefühle, ich hasse meine grosse Klappe).

ASCII sequenzen, du sagst es. Ich habe aber leider keine Ahnung, wie die tab, <- ^ -> und enter handhabt :cry:

Gruss, Dominik

Verfasst: Montag 31. Januar 2005, 13:27
von Leonidas
Slalomsk8er hat geschrieben:ASCII sequenzen, du sagst es. Ich habe aber leider keine Ahnung, wie die tab, <- ^ -> und enter handhabt :cry:
Hmm, vermutlich genauso wie readline.. sorry, das ist wohl keine große Hilfe. Du könntest dir aber mal den Quellcode von "Konsole", oder xterm oder rxvt (Putty, Übershell) angucken um vielleicht eine Ahnung zu bekommen, wie die es gelöst haben.

Verfasst: Montag 31. Januar 2005, 13:38
von Dookie
Ich würd mal nach "console ansi escape sequence" googeln.

Dookie

Verfasst: Montag 31. Januar 2005, 20:55
von Gast
Cool, soll noch mal einer sagen, dass mein Vorhaben unmöglich ist ;)

Was, für Vorteile hat subprocess gegenüber os.popen?

Einen Nachteil hat subprocess auf jeden Fall nämlich erst ab der neuesten Version verfügbar. Unter Linux (Gentoo) kann das installieren einer neuen Python Version jegliches (portage) vom ordentlichen Funktionieren abhalten.

Danke, Dominik

Verfasst: Montag 31. Januar 2005, 21:09
von jens
Hast du eigentlich kein Problem, das dein CGI Skript mit dem User nobody läuft und du somit kaum Rechte hat???

Ich habe noch keine Lösung gefunden: http://python.sandtner.org/viewtopic.php?t=2611

Verfasst: Montag 31. Januar 2005, 23:11
von Gast
Hast du eigentlich kein Problem, das dein CGI Skript mit dem User nobody läuft und du somit kaum Rechte hat???
Noch nicht, da ich erst am experimentieren bin (läuft noch nicht über das server script).

Hat mir jemand ein beispiel, wie man mit den Stdin, stdout und stderr file descriptors communitiert, ich scheine mich gerade mächtig dämlich an zu stellen.

Gruss, Dominik

Verfasst: Dienstag 1. Februar 2005, 11:46
von Slalomsk8er
jens, könnte das die Lösung sein?
tcsetpgrp( fd, pg)

Set the process group associated with the terminal given by fd (an open file descriptor as returned by open()) to pg. Availability: Unix.
Gruss, Dominik

Verfasst: Dienstag 1. Februar 2005, 12:30
von jens
Hmm... Keine Ahnung wie das Funktionieren soll...

Verfasst: Dienstag 1. Februar 2005, 12:54
von Slalomsk8er
Wenn ich das richtig verstehe, kann man damit die Gruppe (Rechte) ändern des Terminals. Da dein Unterprozess in diesem Terminal läuft folglich auch die Rechte des Programms, dass du aufrufst.

Gruss, Dominik

Verfasst: Dienstag 1. Februar 2005, 13:11
von Leonidas
Anonymous hat geschrieben:Was, für Vorteile hat subprocess gegenüber os.popen?
Vorteil? Es kann alles was os.popen kann, auch was popen2.popen, popen2.popen2, popen2.popen3 können. Aber leider ist es irgendwie.. kompliziert.

Verfasst: Dienstag 1. Februar 2005, 13:46
von jens
Slalomsk8er hat geschrieben:Wenn ich das richtig verstehe, kann man damit die Gruppe (Rechte) ändern des Terminals. Da dein Unterprozess in diesem Terminal läuft folglich auch die Rechte des Programms, dass du aufrufst.
Das ist ja das Problem, weswegen su nicht klappt:
su: must be run from a terminal
s. http://python.sandtner.org/viewtopic.php?p=14778#14778

Somit läuft der Unterprozess nicht im Terminal und ich denke das man dann mit tcsetpgrp() nicht viele machen kann...

Verfasst: Dienstag 1. Februar 2005, 16:21
von BlackJack
Leonidas hat geschrieben:
Anonymous hat geschrieben:Was, für Vorteile hat subprocess gegenüber os.popen?
Vorteil? Es kann alles was os.popen kann, auch was popen2.popen, popen2.popen2, popen2.popen3 können. Aber leider ist es irgendwie.. kompliziert.
Es funktioniert auf die gleiche (komplizierte) Weise plattformübergreifend, war glaube ich ein Vorteil.

Verfasst: Dienstag 1. Februar 2005, 16:25
von BlackJack
Slalomsk8er hat geschrieben:Wenn ich das richtig verstehe, kann man damit die Gruppe (Rechte) ändern des Terminals. Da dein Unterprozess in diesem Terminal läuft folglich auch die Rechte des Programms, dass du aufrufst.
Das hat mit der Gruppe aus den Zugriffsrechten nichts zu tun. Es geht dabei um Prozessgruppen. Wenn Du Prozesse asynchron von einem Programm aus startest und dieses dann killst, dann werden auch die Kindprozesse beendet, wenn sie in der gleichen Prozessgruppe sind. Wenn sie in einer anderen/eigenen Prozessgruppe sind, dann können die Kindprozesse trotzdem weiterlaufen.