TIGHTvncserver mit pexpect

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
SpicySynek
User
Beiträge: 10
Registriert: Mittwoch 13. Dezember 2017, 11:14

Hallo Leute,
vielleicht hat jemand eine Idee für mein folgendes Problem. Ich möchte auf meinem Raspberry einen TightVNC-Server mit dem pexpect-Modul aufrufen. Die Passwortabfrage u.ä. sollen dabei automatisch ablaufen. Es funktioniert soweit ganz gut, jedoch bekomme ich wenn ich dann per Remote auf den Raspberry zugreife nur eine graue (schwarz-weißes Netz) Oberfäche mit einem Steuerkreuz zu sehen. Führe ich die Prozedur im Eingabefenster durch und greife dann darauf zu, bekomme ich wiederrum das ganz normale Bild.
Die Files die beim Aufrufen des Servers im /root/.vnc erstellt werden, stimmen in beiden Vorhergehensweisen überein.
Woran kann das liegen?

Es grüßt euch,
Tobi

Code: Alles auswählen

[quote]
child=pexpect.spawn("tightvncserver")
print(child.readline())
print(child.readline())
print(child.readline())
child.sendline("passwort123")                            #Password:
print(child.readline())
child.sendline("passwort123")                            #Verify:
print(child.readline())
child.sendline("n")                                             #View-only Password (j/n)
[/quote]
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da fehlt der Start eines window managers vermute ich mal. Wie startest du die ganze Rutsche denn, wenn du dich manuell einloggst?
SpicySynek
User
Beiträge: 10
Registriert: Mittwoch 13. Dezember 2017, 11:14

Was ist denn ein window manager?
Das Einloggen auf den Server über einen Windows 10 PC mit installiertem TightVNCViewer. Wenn ich den Server auf dem Raspberry über die Konsole aufrufe, erscheint nach dem Einloggen auf dem PC gleich der Desktop des Raspberrys.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist das Ding, das die Fenster Dekoration macht etc.

Was ggf fehlt sind Umgebungsvariablen. Und das Kommando das du benutzt ist genau gleich?
SpicySynek
User
Beiträge: 10
Registriert: Mittwoch 13. Dezember 2017, 11:14

Das ist nur der Ausschnitt des gesamten Codes. Dieser wird bei drücken eines Buttons ausgeführt. Die Print Befehle habe ich nur zu meiner Verständnis beim rumprobieren hinzugefügt.
SpicySynek
User
Beiträge: 10
Registriert: Mittwoch 13. Dezember 2017, 11:14

Längst fälliges Update:
Habe es zum laufen bekommen, indem ich das Passwort per..

Code: Alles auswählen

def sessions_start():
	vncserver = pexpect.spawn("vncpasswd")
	vncserver.sendline("passwort123")
	vncserver.sendline("passwort123")
	vncserver.sendline("n")
... erstellle und die eigentliche Session mit ..

Code: Alles auswählen

	os.system("vncserver :1")
beim Aufrum mit os.system wird der Bildschirminhalt auf dem Zugreifenden Gerät nicht wie im ersten Post grau, sondern funktioniert einwandtfrei!
Grüße Spicy
Antworten