
Ich möchte ein einzelnes Bash-Skript/eine einzelne Bash-Konfiguration/was auch immer schreiben, um durch Ausführen eines einzelnen Befehls mehrere Fenster mit einer vordefinierten Anordnung zu öffnen.
Wenn ich beispielsweise über Probleme mit dem Mailserver benachrichtigt werde, möchte ich ausführen, connect_mailserver.sh
was einen Fenster-Container öffnet, der enthält
- ein Fenster mit
tail -f /var/log/mail.log
- ein Fenster mit
htop
- ein Browserfenster, das alle E-Mail-bezogenen Prüfungen in Nagios anzeigt
- eine Shell, um Dinge auf diesem Server zu erledigen
- ...
Alle Fenster sollten an vordefinierten Positionen gestartet werden, ich sollte sie aber auch verschieben und ihre Größe ändern können.
Ich glaube, dafür gibt es viele elegante Lösungen, vielleicht mit screen
oder emacs
. Vielleicht gibt es dafür ein besseres Tool? Haben Sie eine ähnliche Lösung?
Antwort1
Wahrscheinlich nicht so elegant, wie Sie es sich wünschen, aber ich würde wmctrl
es hierfür verwenden.
xterm -T mail.log -e tail -f /var/log/mail.log &
until wmctrl -F -r mail.log -e0,<posx>,<posy>,<width>,<height>
do sleep .1s
done
Natürlich können Sie auch andere Apps als xterm verwenden. wmctrl
kann nur Fenstertitel oder Fenster-IDs abgleichen. Wenn Sie Ihren Fenstertitel nicht festlegen können, müssen Sie seine ID finden, indem Sie grep
die Ausgabe wmctrl -lp
für die entsprechende PID mit -ing versehen.
Antwort2
Verwenden
xterm -geometry 120x50+100+100 -e 'command'
Der Geometrieparameter lautet wie folgt: LINESxCOLUMNS+XSTART+YSTART
Wenn Sie die Geometrieparameter herausfinden möchten, öffnen Sie mehrere xterms, starten Sie „xwininfo“ in einem anderen und klicken Sie dann auf das Fenster, dessen Geometrieparameter Sie erfahren möchten.