Hintergrundaufgaben programmgesteuert auf einem geteilten Bildschirm ausführen?

Hintergrundaufgaben programmgesteuert auf einem geteilten Bildschirm ausführen?

Ich versuche herauszufinden, wie man einen Befehl erstellt, der runbgUnterbefehle akzeptiert, die im Hintergrund ausgeführt werden und für jeden Unterbefehl einen geteilten Bildschirm erstellen. Wenn ein Unterbefehl erfolgreich abgeschlossen wird, wird der geteilte Bildschirm geschlossen. Wenn ein Unterbefehl fehlschlägt, bleibt der Bildschirm mit dem Fehler geöffnet, bis der Benutzer den Bildschirm mit dem Beendigungssignal schließt. Sobald alle Bildschirme geschlossen sind, ist der Befehl abgeschlossen und die Ausführung wird fortgesetzt. Beispiel:

runbg "ping -t 5 google.com" "ping -t 10 microsoft.com"
echo "done"

Ich habe herausgefunden, dass ich Folgendes kann:

ping -t 5 google.com &
ping -t 10 microsoft.com &
wait

Dadurch wird die parallele Seite der Dinge erreicht, allerdings gibt jeder Befehl alles an dasselbe Terminal aus, was sehr laut ist. Daher der Wunsch nach einem Split-Screen-Setup.

Durch die Suche hier habe ich entdecktGNU-BildschirmDies scheint die Bildschirmseite der Dinge zu handhaben, erfordert aber offenbar eine .screenrc-Datei – was zwar programmgesteuert möglich ist, aber etwas lästig ist, da ich mir vorstellen kann, dass es bedeuten würde, dass ich irgendwo eine zufällige temporäre Datei schreiben müsste.

ich fanddiese Antwortdas geht in die Verwendung des Bildschirms ohne, .sreenrcich kann jedoch nicht herausfinden, wie ich den geteilten Bildschirm darin machen kann.

Also kurz gesagt:

  • Gibt es bereits etwas, das die von mir angestrebte Funktionalität bietet runbg?
  • Wenn nicht, ist GNU Screen das, was ich dafür brauche? Muss ich eine Datei verwenden .screenrcoder gibt es eine Möglichkeit, die geteilten Bildschirme ohne eine solche zu erstellen?

Antwort1

Sie können dies mit tmux tun, indem Sie die Tasten „Split Window“ und „Send“ wie folgt aneinanderreihen:

tmux new session \; split-window -v \; send-keys 'ping -t 5 google.com' C-m \; split-window -h \; send-keys 'ping -t 10 microsoft.com' C-m \;

verwandte Informationen