tmux: Détecter quel processus s'exécute dans le volet actif

12

Existe-t-il un moyen de détecter quel processus s'exécute dans le volet actif?

tmux: recherchez "ma" fenêtre, vérifiez si elle est active est liée, cependant, elle traite de la détection à partir du volet.

J'ai besoin de détecter cela à partir d'une commande externe (pas à partir de la session tmux).

Le problème se résume très probablement à deux étapes:

  1. Détecter le volet actif
  2. Détecter quel processus s'exécute dans le volet donné
Enuy
la source
Vous pouvez trouver mon script utile.
x-yuri

Réponses:

13

Il s'avère que tmux possède de puissantes capacités de formatage pour la commande list-panes:

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

La commande ci-dessus s'imprimera

1 <process_pid>

pour le volet actif.

Les options de fromatting sont décrites dans man tmux:

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

Pour la discussion du terme "premier processus dans le volet", voir Que signifie le "premier pid d'un volet" dans tmux?

Enuy
la source