=== eTeddy1 is now known as eTeddy === taunix__ is now known as taunix === JanC is now known as Guest71318 === JanC_ is now known as JanC [17:11] Moin. Vielleicht kann jemand helfen: Ich benutze gnomw-terminal um ein CLI-Programm fullscreen zu starten. Wenn ich das Programm beende soll der Rechner runterfahren. Mein Script enthält: „sudo gnome-terminal --full-screen -e /usr/bin/program & sudo shutdown -H now“ - Dummerweise startet das Programm und der Rechner fährt sofort runter. [17:13] klar, das sagst du ihm ja auch im Befehl [17:13] && [17:13] Ja… ich dachte nur das der Befehl nach dem „&“ ausgeführt wird wenn der erste beendet wurde [17:13] selbst das würde sofort runterfahren [17:14] iTommix: ein & schickts in den Hintergrund, zwei führt es der Reihe nach aus [17:14] https://wiki.ubuntuusers.de/Shell/Operatoren/#UND-Verknuepfung-von-Befehlen-mit [17:14] Title: Operatoren › Shell › Wiki › ubuntuusers.de (at wiki.ubuntuusers.de) [17:14] also wäre „&&“ richtig [17:14] Nein [17:16] Es sei denn, der Prozess wird erst beim beenden des Terminals als abgeschlossen gewertet vom gnome-terminal [17:16] die frage ist wann das gnome terminal da den exitstatus abgibt. [17:16] Frickelpit: könnte man ja testen ;) [17:17] iTommix: Das kannst du testen in dem du ein echo $? anstelle des shutdown Befehls packst. [17:17] ich würde es mal mit && probiere, wenn das nciht geht wirds eh fies. [17:18] teste es gerade mal... [17:19] nope… fährt sofort runter :( [17:21] iTommix: der dr_bob kann dir bestimmt sagen, dass das eine doofe Idee ist und man das wunderbar schön anders regeln kann. [17:21] huhu dr_bob :) [17:21] aber warum sollte das eine doofe idee sein? [17:22] Hallo Frickelpit! [17:23] Moment, muss erst mal lesen. [17:25] dr_bob: Hi… also prinzipiell eine einfache aufgabe… aber irgendwie will das o.g. nicht funktionieren [17:27] Habe ja leider kein Ubuntu sondern Xubuntu und deshalb kein gnome-terminal. [17:27] iTommix: mit etwas weniger bloatigem als dem gnome-terminal funktioniert das auch ;) [17:28] dr_bob: ja, musste ich auch erst nachinstallieren… [17:28] z.B.: xterm -e htop ; echo done [17:28] xc: was schlägst du vor? [17:28] Ich plotte noch... [17:29] Also, zunächst mal ist es blöd, zwei Mal sudo zu haben. Wenn Dein Programm lange läuft, dann wird er beim shutdown immer nach dem Passwort fragen. [17:29] hm… vielleicht funktioniert ja auch GT mit einem „;“ - testen [17:29] nein, wird es nicht [17:30] der einzige Unterschied ist, dass bei && der Rückgabewert eine Rolle spielt, bei ; nicht. [17:31] ok… und xterm lässt sich fullscreen öffnen? [17:31] Das Problem bei dem gnome-terminal scheint zu sein, dass es sich in den Hintergrund forkt. Wenn du unbedingt gnome-terminal verwenden willst, wird das komplizierter, je nachdem wie genau du "Programm beenden" verstehst. [17:31] iTommix: das sagt dir "man xterm" [17:32] iTommix, ich würde das so machen. Eigentlich müsste gnome-terminal erst enden, wenn das gestartete Programm beendet ist. [17:32] Sorry, Link vergessen: https://paste.ubuntuusers.de/423939/ [17:32] Title: Unbenannt › Ablage › ubuntuusers.de (at paste.ubuntuusers.de) [17:32] naja… was verstehe ich darunter. rufe ich das programm im terminal auf (bash) dann blockiert es ja auch die bash, bis ich „quit“ anklicke ;) [17:33] iTommix: es macht einen Unterschied, ob du das Terminal schließt, oder du das Programm korrekt beendest und sich das Terminal danach von selbst schließt. [17:33] oh gott… dr_bob… :D was hast du da zusammengebaut? [17:33] Zu Eurer Diskussion oben: ich würde && nur dann verwenden, wenn der Shutdown tatsächlich bei einem Fehler ausbleiben soll. Sonst sollte man ";" nehmen, wenn denn alle Befehle unbedingt auf einer Zeile stehen müssen. [17:34] iTommix, das Skript schaut in Zeile 3 nach, ob es als root läuft (also mit sudo). Falls nicht, ruft es sich selbst mit sudo auf, indem es den aktuellen Prozess überlagert (exec). [17:35] $DEBUG dient nur dem Zweck, dass man einfach Debugging einschalten kann. Dann rufst Du das einfach so auf: $ DEBUG=x das-script [17:35] Mache ich immer so. Dann kann man auch bequem über mehrere Skripte hinweg debuggen, die sich gegenseitig aufrufen. [17:36] ok… also ausser das ich den parameter „-e“ nimmst du für gnome-terminal hier „-x“ - der unterschied macht es dann? [17:36] War die Erläuterung hilfreich? [17:36] dr_bob: yes… danke [17:38] dr_bob: auch mit deinem script fährt der rechner sofort runter :( [17:38] Eher nicht. Ich bevorzuge aber -x hier, weil man dann einfach weitere Kommandozeilenargumente anhängen kann und keinen Stress mit Shell-Sonderzeichen bekommt. Man kann auch gleich alle Argumente durchreichen: https://paste.ubuntuusers.de/423940/ [17:38] Title: Sudo mit shutdown › Ablage › ubuntuusers.de (at paste.ubuntuusers.de) [17:39] "Eher nicht" bezog sich auf den Unterschied. [17:39] Läuft denn Dein Programm wirklich? Vielleicht hast Du ja ein Problem mit dem Kommando oder der Tatsache, dass es als root ausgeführt wird [17:40] es soll mit sudo laufen. und ja, man sieht es kurz, aber dann fährt die büchse ja schon runter [17:40] siehe was ich vor 10min schon schrieb. [17:41] wegen xterm? [17:41] Dann mach doch mal folgendes: gnome-terminal -e "dein befehl; read foo" [17:41] Dann bleibt das Terminal auf jeden Fall offen und Du kannst schauen, was es da als Fehler gibt. [17:42] also in anführungszeichen setzen? [17:42] gnome-terminal forkt sich in den Hintergrund, deswegen funktioniert der Ansatz von dr_bob nicht. [17:42] xc, warum macht es das? Die Manpage erwähnt das auch nicht. [17:43] dr_bob: frag mich doch nicht sowas, wie erwähnt halte ich das Ding für bloatware und würde davon abraten es zu benutzen. [17:44] Wenn man darauf besteht, ist es wahrscheinlich am sinnvollsten, die pid von dem Prozess "innen" zu holen und auf den zu warten. [17:45] Man könnte es auch umgekehrt machen und die PID des Shell-Skriptes reinreichen. Das legt man dann schlafen und schreibt einen Signalhandler, der es beendet. Ist aber auch eklig. [17:45] wäre eine option… [17:46] * dr_bob hat noch eine Ubuntu-VM gefunden und bastelt mal. [17:48] Hm, btrfs ist nicht optimal als Dateisystem, auf dem VMs liegen. [17:49] die Aussage ist auch ohne den Nebensatz wahr :p [17:56] Bin ansonsten ganz zufrieden. [18:02] iTommix, Du kannst das natürlich auch so machen, dass Du ein Skript schreibst, das Deinen Befehl ausführt und danach den Shutdown macht. Das führst Du dann im gnome-terminal aus (wenn es das sein soll). Oder Du hängst das gleich mit an: sudo gnome-terminal -e 'befehl; shutdown -H now' [18:03] Das macht halt dann Probleme, wenn es auch "ok" sein soll, das Terminal zu schließen (deswegen oben meine Nachfrage). [18:04] dr_bob: werde ich mal testen… ansosnten bleibt noch die variante mit der PID [18:05] Quick and Dirty ginge auch sowas, vorausgesetzt es gibt nur einmal htop / dein ausgeführtes Programm: [18:05] gnome-terminal -e htop ; sleep 1 ; while pgrep htop &>/dev/null ; do sleep 2s ; done ; echo done [18:05] ja… das gibt es definitiv dann nur einmal :) [18:06] ich teste das, xc [18:06] Statt pgrep nehme ich gerne pkill -0 htop 2>/dev/null. [18:06] aber das ist halt jetzt echt zusammengehackt und ich würde eher einfach einen anderen Terminalemulator nehmen [18:06] Ach nee, das läuft ja unter dem anderen Benutzer. Vergiss das- [18:07] das terminal wäre mir egal… es soll halt im fullscreen modus laufen [18:08] So Schleifen, die auf die Beendigung eines Prozesses warten, finde ich immer so unelegant. [18:10] also, wenn deine Version neu genug ist, hilft das hier: https://github.com/GNOME/gnome-terminal/commit/42f9f7978e3d103af7a5c9eb2c8f0e8d40e0647c [18:10] Title: client: legacy: Implement waiting for child process exit · GNOME/gnome-terminal@42f9f79 · GitHub (at github.com) [18:10] und sonst wie gesagt: xterm -fullscreen -e htop ; echo done [18:12] xc: das war meine frage vorhin, ob xterm fullscreen kennt… sorry… hab hier gerade 2 probleme auf dem tisch :( [18:14] geht sicher auch mit xfce4-term, urxvt oder sonstewas [18:16] * dr_bob würde dann auch xterm nehmen. Auf Xubuntu natürlich xfce4-terminal [19:33] xc: und dr_bob habe es jetzt mit der pgrep variante gelöst… danke allen :)