Hallo! Ich habe mir einen kleinen Linux-Server (Udoo mit Ubuntu) eingerichtet. Auf dem lasse ich sofort nach dem Booten ein Programm von mir starten. Wenn ich mich nun per Remote-Desktop mit dem Rechner verbinde, sehe ich das Terminalfenster mit den Ausgaben meines Programms für einen ganz kurzen Moment. Danach verschwindet es (das Programm läuft aber noch!). Das ist nun ein bisschen blöd, da ich mir gerne die Ausgaben im Terminal genauer anschauen würde. Gibt es einen Weg das Fenster "zurückzuholen"? Ich habe es natürlich schon mit Alt+Tab versucht, aber das Fenster scheint tatsächlich weg zu sein... (Ihr merkt, ich habe von Linux nicht viel Ahnung) ;-) Danke!
Hallo, hast du denn deine Ausgabe auf die Standardausgabe geschickt, oder auf eine andere Konsole? stdout oder stderr ... Du könntest die Ausgabe mit progname > out.txt in eine Datei schicken und dann in Ruhe lesen. Grüße aus Berlin
Boris P. schrieb: > Wenn ich mich nun per Remote-Desktop mit dem Rechner verbinde, sehe ich > das Terminalfenster mit den Ausgaben meines Programms für einen ganz > kurzen Moment. Danach verschwindet es (das Programm läuft aber noch!). Warum gehst du nicht direkt mit ssh drauf?
Boris P. schrieb: > Linux-Server (Udoo Gefaellt mir :) Boris P. schrieb: > ein Programm von mir In welcher Sprache ist das Programm geschrieben? Je nach Sprache man da vllt. was einbauen was das schliessen des Fensters verhindert. Boris P. schrieb: > das Programm läuft aber noch! Wie stellst du das fest?
Rolf Magnus schrieb: > Warum gehst du nicht direkt mit ssh drauf? Was wäre der Vorteil? Dann kann ich ja nicht mehr wirklich mehrere Programme parallel benutzen, und auch die GUIs stehen nicht mehr zur Verfügung. Rene Schube schrieb: > Du könntest die Ausgabe mit progname > out.txt in eine Datei schicken > und dann in Ruhe lesen. Das Schreiben aufs Dateisystem würde ich gerne vermeiden. Sonst ist die SD Karte schneller korrupt als ich "Stromausfall!" sagen kann ;-)
> Rene Schube schrieb: >> Du könntest die Ausgabe mit progname > out.txt in eine Datei schicken >> und dann in Ruhe lesen. > > Das Schreiben aufs Dateisystem würde ich gerne vermeiden. Sonst ist die > SD Karte schneller korrupt als ich "Stromausfall!" sagen kann ;-) Von SD-Card hast du aber nix gesagt :-) Kannst du dein Programm so ändern das die Ausgabe stehen bleibt, zB. bis du eine Taste drückst? Hat dein System genug Speicher für eine RAM-Disk? Dann kannst du die Datei dort "kurz" ablegen. Oder schick die Daten übers Netzwerk auf deinen Client. Grüße aus Berlin
Rene Schube schrieb: > Von SD-Card hast du aber nix gesagt :-) Ich habe aber erwähnt, dass es sich um eine Udoo handelt. Aber das sagt natürlich nicht jedem was ;-) Ist im Prinzip ein RaspberryPi, nur mit etwas mehr Bumms. Rene Schube schrieb: > Kannst du dein Programm so ändern das die Ausgabe stehen bleibt, zB. bis > du eine Taste drückst? Ich weiß nicht genau was du meinst. Die Ausgaben bleiben ja stehen. Wenn ich das Programm z.B. lokal auf einem PC starte, kann ich ihm stundenlang beim loggen zuschauen. Auf dem Linux-System funktioniert es auch genauso, wenn ich das Programm manuell per Terminal starte. Nur wenn das Programm automatisch starten lasse, wird das Terminal plötzlich unsichtbar, obwohl das Programm noch läuft. Den Autostart habe ich übrigens per "gnome-session-properties" festgelegt. Dort habe ich den Befehl: gnome-terminal -e "./startmyapp.sh" --working-directory "pathtomyapp" angegeben.
Boris P. schrieb: > Das Schreiben aufs Dateisystem würde ich gerne vermeiden. Sonst ist die > SD Karte schneller korrupt als ich "Stromausfall!" sagen kann ;-) Blödsinn. Wenn SD-Karten so schnell kaputt gehen würden, dann müsste jede SD-Karte in einem Smartphone nach kürzesterzeit kaputt sein. Und meine hält schon seit 3 Jahren, und da ist nichts kaputt. Ich hab auch einen UDOO(quad) und schreibe tonnenweise Daten auf die SD-Karte(64GB) und SATA-DOM(32GB) im 24/7 dauerbetrieb, und beides hält auch schon weit über ein halbes Jahr (einmal die Woche muss ich meine Logs löschen um wieder platz zu schaffen). Und auch nach mehrmaligem Steckerziehen ist beides noch heile. Vielleicht mal nicht den billig china-schrott kaufen? Da du auch nichts von Festplatte sagst, geh ich davon aus das du nur den Dual-Core hast? Wenn nicht: warum nimmst du keine Festplatte/DOM und schreibst darauf? Boris P. schrieb: > Was wäre der Vorteil? Dann kann ich ja nicht mehr wirklich mehrere > Programme parallel benutzen, und auch die GUIs stehen nicht mehr zur > Verfügung. Die GUIs stehen dir sehrwohl zur verfügung. Du kannst die GUI eines Programms auf deinen PC umleiten. Rene Schube schrieb: > Hat dein System genug Speicher für eine RAM-Disk? Der UDOO hat 1GB RAM, sollte also machbar sein... also mit Arch gehts auf jedenfall, mit ubuntu... naja... Sorry, aber das mit dem "ah, meine sd karte geht kaputt sobald ich darauf schreibe" ist einfach bockmist.
Boris P. schrieb: > Ich habe mir einen kleinen Linux-Server (Udoo mit Ubuntu) eingerichtet. > Auf dem lasse ich sofort nach dem Booten ein Programm von mir starten. Wie? > Wenn ich mich nun per Remote-Desktop mit dem Rechner verbinde, sehe ich > das Terminalfenster mit den Ausgaben meines Programms für einen ganz > kurzen Moment. Danach verschwindet es (das Programm läuft aber noch!). > > Das ist nun ein bisschen blöd, da ich mir gerne die Ausgaben im Terminal > genauer anschauen würde. "Remote-Desktop" und "Terminal" klingt irgendwie falsch. Läuft da ein X drauf? Und "Terminal" meint ein xterm o.ä. ? Mein Alternativvorschlag wäre, das ganze X- und Remote-Desktop Gedöhns zu vergessen und das Programm mit screen zu starten. Dann kann man sich jederzeit per SSH auf die Kiste einloggen und per "screen -r" mit dem laufenden Programm verbinden. Beispiel:
1 | ~ $screen -S foo -d -m iostat -m 5 |
Das startet das Programm "iostat -m 5". Die Screen-Session bekommt den Namen "foo" (dadurch ist sie später leichter zu identifizieren). Die Optionen "-d -m" für screen starten das Programm im Hintergrund. Obiges Kommando erzeugt also keine(!) Ausgabe auf dem Terminal. Jetzt können wir uns jederzeit auf dem System einloggen und schauen was für screen Sessions es gibt:
1 | ~ $screen -ls |
2 | There is a screen on: |
3 | 19211.foo (07/19/14 13:32:06) (Detached) |
4 | 1 Socket in /var/run/screen/S-axel. |
Die Nummer ist die pid des screen Prozesses, der Name der Session (foo) ist angehängt. Das "Detached" bedeutet, daß kein Terminal mit der Session verbunden ist. Jetzt können wir uns mit der Session verbinden:
1 | ~ $screen -r foo |
2 | ... |
3 | Linux 3.14-1-amd64 (alpha) 07/19/14 _x86_64_ (8 CPU) |
4 | |
5 | avg-cpu: %user %nice %system %iowait %steal %idle |
6 | 1.99 0.24 0.32 0.57 0.00 96.89 |
7 | |
8 | Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn |
9 | sdb 0.03 0.00 0.00 2 0 |
10 | sda 1.33 0.03 1.05 498 16405 |
11 | dm-0 1.26 0.03 0.00 493 21 |
12 | dm-1 0.01 0.00 1.05 0 16383 |
13 | ... |
wenn man jetzt "CTRL+C" drückt oder das Programm anderweitig abbricht oder beendet, ist die screen Session gleich mit weg. Man kann sich jederzeit per "CTRL+A d" wieder von der Session abtrennen (läuft im Hintergrund weiter). Ein einzelner Screen-Prozeß kann mehrere Fenster enthalten zwischen denen man umschalten kann. Man kann auch Screenshots machen und/oder Ausgaben in ein Logfile schreiben lassen u.v.m. Mehr Info zu screen findet man auf der Manpage. "CTRL+A h" in einem screen Fenster zeigt die vordefinierten Tastenkürzel. XL
Kaj schrieb: > Sorry, aber das mit dem "ah, meine sd karte geht kaputt sobald ich > darauf schreibe" ist einfach bockmist. Ich habe hier schon 3 kaputte Karten, die nicht mal mehr durch Formatieren zu retten sind. Dazu hat es jeweils gereicht, dem Gerät den Strom abzuziehen, ohne dieses vorher herunterzufahren. Die Karten waren nicht wirklich billig (Sandisk, Transcend und Samsung). Von Bockmist kann also nicht die Rede sein. Bluub schrieb: > VNC? Remote Desktop tuts doch genauso, oder? Axel Schwenke schrieb: > Wie? Wie oben geschrieben: per "gnome-session-properties" gnome-terminal -e "./startmyapp.sh" --working-directory "pathtomyapp" Das Skript startet dann mit Mono meine .exe. Axel Schwenke schrieb: > "Remote-Desktop" und "Terminal" klingt irgendwie falsch. Wieso? Ich gehe per Remote Desktop auf das Gerät. Dort läuft das Gnome-Terminal, und in diesem meine App. Passt doch ;-)
Boris P. schrieb: > Rolf Magnus schrieb: >> Warum gehst du nicht direkt mit ssh drauf? > > Was wäre der Vorteil? Du hast dieses ganze drumherum mit dem Remote-Desktop nicht, und es es ist schneller. > Dann kann ich ja nicht mehr wirklich mehrere Programme parallel benutzen, Waurm nicht? > und auch die GUIs stehen nicht mehr zur Verfügung. Wozu braucht der Server denn eine GUI?
Boris P. schrieb: > Axel Schwenke schrieb: >> "Remote-Desktop" und "Terminal" klingt irgendwie falsch. > > Wieso? > Ich gehe per Remote Desktop auf das Gerät. Dort läuft das > Gnome-Terminal, und in diesem meine App. Passt doch ;-) Wenn deine App nicht mehr braucht als ein Terminal, dann brauchst du weder den X-Server noch den Gnome Desktop mit seinen gefühlt 1000 Prozessen zu starten. Ist doch alles bloß Ballast, der RAM frißt und die Startzeit unnötig verlängert. XL
Axel Schwenke schrieb: > Wenn deine App nicht mehr braucht als ein Terminal, dann brauchst du > weder den X-Server noch den Gnome Desktop mit seinen gefühlt 1000 > Prozessen zu starten. Ist doch alles bloß Ballast, der RAM frißt und die > Startzeit unnötig verlängert. Joa, stimmt schon. Aaaaber: Das war nunmal auf dem Udoo so vorinstalliert. Und mal ehrlich: für einen Linux-Noob wie mich ist Ubuntu dann doch die bessere Wahl ;-) (gerade, wenn es um die Konfiguration des Systems (WLAN, Autostart, Paketinstallation usw. geht) Sicherlich geht das auch alles ganz wunderbar ohne GUI per SSH (oder sowas)... Wenn man es denn kann!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.