Hallo an die Wissenden, auf einem Beaglebone mit ArchLinux läuft ein Python-Script, welches über rc.local gestartet wird. Ich möchte es irgendwie warten, wenn ich mich per SSH anmelde. Ich dachte da an ein kleines TUI mit Curses. Nur weiß ich im Moment nicht, wie ich das bewerkstelligen soll. Ich will im laufendem Python-Script ein paar Variablen ändern können und ein paar Ausgaben lesen. Kann mir da jemand einen Tip geben?
Gast
#3113092
Viele Möglichkeiten: 1. Ganz einfach: Das Skript schreibt seine Ausgaben in eine Log-Datei oder gleich ins Syslog. Eingaben / Konfiguration erhält es aus einer Datei, dessen Änderung das Skript detektiert und im Falle von neuen Werten diese einliest. 2. Etwas komplizierter: Das Skript wird in einer screen-Session gestartet. Ein Nutzer attached sich an diese Session und kann mit dem Skript (das dann eine Curses TUI hat) herumfummeln. 3. Ordentliches Design: Das Skript startet und lauscht lokal auf einer geeigneten Schnittstelle (IPC, UDP/IP, TCP/IP, was auch immer) und lässt sich von einem speziellen Client-Programm konfigurieren etc. Von 1 nach 3 wirds komplizierter und gleichzeitig sauberer. Hängt davon ab, was Du willst und wieviel Arbeit Du invenstieren willst. Ich habe für unterschiedliche Anwendungen schon alle drei gemacht; es gibt bestimmt noch mehr Möglichkeiten. Was optimal ist, hängt immer von der Anwendung und deinem Geschmack ab. Gruß Hugohummelbert
Gast
#3113094
Achja, der Titel klingt so, als wolltest Du dieses "Bedienskript" (wie auch immer) direkt beim Login starten: Dann kann man das je nachdem wie sehr man dem ssh-Nutzer vertraut entweder einfach direkt als login-shell (/etc/passwd) eintragen oder in der jeweiligen .bashrc direkt an den Anfang stellen. Daran sollte es ja nicht scheitern.
Gast
#3113148
Hi Matthias, Matthias Herrmann schrieb: > auf einem Beaglebone mit ArchLinux läuft ein Python-Script, welches über > rc.local gestartet wird. Ich möchte es irgendwie warten, wenn ich mich > per SSH anmelde. Ich dachte da an ein kleines TUI mit Curses. Nur weiß > ich im Moment nicht, wie ich das bewerkstelligen soll. Ich will im > laufendem Python-Script ein paar Variablen ändern können und ein paar > Ausgaben lesen. Kann mir da jemand einen Tip geben? Naja, UNIXe kennen etliche Möglichkeiten zur Interprozesskommunikation, Shared Memory, Domain- und Netzwerk-Sockets, ... Für Deinen Anwendungsfall kannst Du aber eine Named Pipe benutzen: "Server":
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
"Client":
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
HTH, Klaus
Danke für die vielen Infos. Ich werde mir die einzelnen Möglichkeiten am Nachmittag mal anschauen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.