[17:11] <iTommix> 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] <Frickelpit> klar, das sagst du ihm ja auch im Befehl
[17:13] <j0k> &&
[17:13] <iTommix> Ja… ich dachte nur das der Befehl nach dem „&“ ausgeführt wird wenn der erste beendet wurde
[17:13] <Frickelpit> selbst das würde sofort runterfahren
[17:14] <Frickelpit> iTommix: ein & schickts in den Hintergrund, zwei führt es der Reihe nach aus
[17:14] <k1l> https://wiki.ubuntuusers.de/Shell/Operatoren/#UND-Verknuepfung-von-Befehlen-mit
[17:14] <le_bot> Title: Operatoren › Shell › Wiki › ubuntuusers.de (at wiki.ubuntuusers.de)
[17:14] <iTommix> also wäre „&&“ richtig
[17:14] <Frickelpit> Nein
[17:16] <Frickelpit> Es sei denn, der Prozess wird erst beim beenden des Terminals als abgeschlossen gewertet vom gnome-terminal
[17:16] <k1l> die frage ist wann das gnome terminal da den exitstatus abgibt.
[17:16] <iTommix> Frickelpit: könnte man ja testen ;)
[17:17] <Frickelpit> iTommix: Das kannst du testen in dem du ein echo $? anstelle des shutdown Befehls packst.
[17:17] <k1l> ich würde es mal mit && probiere, wenn das nciht geht wirds eh fies.
[17:18] <iTommix> teste es gerade mal...
[17:19] <iTommix> nope… fährt sofort runter :(
[17:21] <Frickelpit> 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] <Frickelpit> huhu dr_bob :)
[17:21] <iTommix> aber warum sollte das eine doofe idee sein?
[17:22] <dr_bob> Hallo Frickelpit!
[17:23] <dr_bob> Moment, muss erst mal lesen.
[17:25] <iTommix> dr_bob: Hi… also prinzipiell eine  einfache aufgabe… aber irgendwie will das o.g. nicht funktionieren
[17:27] <dr_bob> Habe ja leider kein Ubuntu sondern Xubuntu und deshalb kein gnome-terminal.
[17:27] <xc> iTommix: mit etwas weniger bloatigem als dem gnome-terminal funktioniert das auch ;)
[17:28] <iTommix> dr_bob: ja, musste ich auch erst nachinstallieren…
[17:28] <xc> z.B.: xterm -e htop ; echo done
[17:28] <iTommix> xc: was schlägst du vor?
[17:28] <dr_bob> Ich plotte noch...
[17:29] <dr_bob> 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] <iTommix> hm… vielleicht funktioniert ja auch GT mit einem „;“ - testen
[17:29] <xc> nein, wird es nicht
[17:30] <xc> der einzige Unterschied ist, dass bei && der Rückgabewert eine Rolle spielt, bei ; nicht.
[17:31] <iTommix> ok… und xterm lässt sich fullscreen öffnen?
[17:31] <xc> 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] <xc> iTommix: das sagt dir "man xterm"
[17:32] <dr_bob> iTommix, ich würde das so machen.  Eigentlich müsste gnome-terminal erst enden, wenn das gestartete Programm beendet ist.
[17:32] <dr_bob> Sorry, Link vergessen: https://paste.ubuntuusers.de/423939/
[17:32] <le_bot> Title: Unbenannt › Ablage › ubuntuusers.de (at paste.ubuntuusers.de)
[17:32] <iTommix> 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] <xc> 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] <iTommix> oh gott… dr_bob… :D was hast du da zusammengebaut?
[17:33] <dr_bob> 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] <dr_bob> 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] <dr_bob> $DEBUG dient nur dem Zweck, dass man einfach Debugging einschalten kann.  Dann rufst Du das einfach so auf: $ DEBUG=x das-script
[17:35] <dr_bob> Mache ich immer so.  Dann kann man auch bequem über mehrere Skripte hinweg debuggen, die sich gegenseitig aufrufen.
[17:36] <iTommix> ok… also ausser das ich den parameter „-e“ nimmst du für gnome-terminal hier „-x“ - der unterschied macht es dann?
[17:36] <dr_bob> War die Erläuterung hilfreich?
[17:36] <iTommix> dr_bob: yes… danke
[17:38] <iTommix> dr_bob: auch mit deinem script fährt der rechner sofort runter :(
[17:38] <dr_bob> 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] <le_bot> Title: Sudo mit shutdown › Ablage › ubuntuusers.de (at paste.ubuntuusers.de)
[17:39] <dr_bob> "Eher nicht" bezog sich auf den Unterschied.
[17:39] <dr_bob> 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] <iTommix> es soll mit sudo laufen. und ja, man sieht es kurz, aber dann fährt die büchse ja schon runter
[17:40] <xc> siehe was ich vor 10min schon schrieb.
[17:41] <iTommix> wegen xterm?
[17:41] <dr_bob> Dann mach doch mal folgendes: gnome-terminal -e "dein befehl; read foo"
[17:41] <dr_bob> Dann bleibt das Terminal auf jeden Fall offen und Du kannst schauen, was es da als Fehler gibt.
[17:42] <iTommix> also in anführungszeichen setzen?
[17:42] <xc> gnome-terminal forkt sich in den Hintergrund, deswegen funktioniert der Ansatz von dr_bob nicht.
[17:42] <dr_bob> xc, warum macht es das?  Die Manpage erwähnt das auch nicht.
[17:43] <xc> 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] <xc> Wenn man darauf besteht, ist es wahrscheinlich am sinnvollsten, die pid von dem Prozess "innen" zu holen und auf den zu warten.
[17:45] <dr_bob> 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] <iTommix> wäre eine option…
[17:46]  * dr_bob hat noch eine Ubuntu-VM gefunden und bastelt mal.
[17:48] <dr_bob> Hm, btrfs ist nicht optimal als Dateisystem, auf dem VMs liegen.
[17:49] <xc> die Aussage ist auch ohne den Nebensatz wahr :p
[17:56] <dr_bob> Bin ansonsten ganz zufrieden.
[18:02] <dr_bob> 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] <xc> Das macht halt dann Probleme, wenn es auch "ok" sein soll, das Terminal zu schließen (deswegen oben meine Nachfrage).
[18:04] <iTommix> dr_bob: werde ich mal testen… ansosnten bleibt noch die variante mit der PID 
[18:05] <xc> Quick and Dirty ginge auch sowas, vorausgesetzt es gibt nur einmal htop / dein ausgeführtes Programm:
[18:05] <xc>  gnome-terminal -e htop ; sleep 1 ; while pgrep htop &>/dev/null ; do sleep 2s ; done ; echo done
[18:05] <iTommix> ja… das gibt es definitiv dann nur einmal :)
[18:06] <iTommix> ich teste das, xc
[18:06] <dr_bob> Statt pgrep nehme ich gerne pkill -0 htop 2>/dev/null.
[18:06] <xc> aber das ist halt jetzt echt zusammengehackt und ich würde eher einfach einen anderen Terminalemulator nehmen
[18:06] <dr_bob> Ach nee, das läuft ja unter dem anderen Benutzer.  Vergiss das-
[18:07] <iTommix> das terminal wäre mir egal… es soll halt im fullscreen modus laufen
[18:08] <dr_bob> So Schleifen, die auf die Beendigung eines Prozesses warten, finde ich immer so unelegant.
[18:10] <xc> also, wenn deine Version neu genug ist, hilft das hier: https://github.com/GNOME/gnome-terminal/commit/42f9f7978e3d103af7a5c9eb2c8f0e8d40e0647c 
[18:10] <le_bot> Title: client: legacy: Implement waiting for child process exit · GNOME/gnome-terminal@42f9f79 · GitHub (at github.com)
[18:10] <xc> und sonst wie gesagt: xterm -fullscreen -e htop ; echo done
[18:12] <iTommix> xc: das war meine frage vorhin, ob xterm fullscreen kennt… sorry… hab hier gerade 2 probleme auf dem tisch :(
[18:14] <xc> 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] <iTommix> xc: und dr_bob habe es jetzt mit der pgrep variante gelöst… danke allen :)