Meine Terminalsitzung identifizieren, die einen bestimmten Prozess gestartet hat

Meine Terminalsitzung identifizieren, die einen bestimmten Prozess gestartet hat

Ich verwende Gnome unter Ubuntu. Ich habe oft 8-20 Terminalsitzungen geöffnet und in einigen davon habe ich mich per su an einen anderen Benutzer gewandt. Das spezielle Problem, das mich dazu veranlasst hat, diese Abfrage zu schreiben, tritt bei der Verwendung vonGit-Status, aber das ist ein allgemeineres Problem. Git-Statuswird mir sagen, dass ich eine unkontrollierte Datei .foo.java.swp habe. Das bedeutet, dass ich in einer meiner Terminalsitzungen vi auf foo.java geöffnet habe.

Ich brauche ein Skript oder Tool, das mir sagt, in welcher Terminalsitzung dieser VI ausgeführt wird. Ich kann „ps aux | grep vi“ ausführen, um die PID des jeweiligen VIs ziemlich einfach zu finden. Es wäre schön, wenn das Tool das Terminal in meiner Taskleiste irgendwie hervorheben würde.

Danke.

-Sam

Antwort1

Jedem Ihrer Terminalfenster wird ein anderes Pseudoterminal zugewiesen, das über den Befehl zugänglich ist . Sie können dies mit der Spalte Ihrer Ausgabe ttyvergleichen . Für die GUI-Integration habe ich es normalerweise als ausreichend empfunden, den aktuellen PTY-Bezeichner zum Fenstertitel meines Terminals hinzuzufügen, indem ichTTYps uxTitel, wie

if [ "$PS1" ] ; then
  xtitle xterm $(tty)
fi

In meinem Fenstermanager ist es einfach, per Titel zu einem Fenster zu springen, bei GNOME habe ich keine Ahnung.

verwandte Informationen