tmux: Ermitteln Sie, welcher Prozess im aktiven Bereich ausgeführt wird

12

Gibt es eine Möglichkeit zu erkennen, welcher Prozess im aktiven Bereich ausgeführt wird?

tmux: Suchen Sie das Fenster "Mein" und prüfen Sie, ob es aktiv ist. Es befasst sich jedoch mit der Erkennung aus dem Bereich heraus.

Ich muss dies anhand eines externen Befehls erkennen (nicht innerhalb der tmux-Sitzung).

Das Problem besteht höchstwahrscheinlich aus zwei Schritten:

  1. Ermitteln Sie, welcher Bereich aktiv ist
  2. Ermitteln Sie, welcher Prozess im angegebenen Bereich ausgeführt wird
Enuy
quelle
Sie können mein Skript hilfreich finden.
X-Yuri

Antworten:

13

Es stellt sich heraus, dass tmux über leistungsstarke Formatierungsfunktionen für den Befehl list-panes verfügt:

$ tmux list-panes -F '#{pane_active} #{pane_pid}'
0 4993
0 5382
1 6189

Der obige Befehl wird gedruckt

1 <process_pid>

für den aktiven Bereich.

Fromatting-Optionen werden beschrieben in man tmux:

 pane_active                     1 if active pane
 pane_pid                        PID of first process in pane

Zur Diskussion des Begriffs "erster Prozess im Bereich" siehe Was bedeutet der "erste PID eines Bereichs" in tmux?

Enuy
quelle