Определите мой терминальный сеанс, который запустил определенный процесс

Определите мой терминальный сеанс, который запустил определенный процесс

Я использую Gnome на Ubuntu. У меня часто открыто 8-20 терминальных сессий, и в некоторых из них я подключался к другому пользователю. Конкретная проблема, которая заставила меня написать этот запрос, возникает при использованиистатус гита, но это более общая проблема. статус гитаскажет мне, что у меня есть неконтролируемый файл .foo.java.swp. Это означает, что в одном из моих терминальных сеансов у меня открыт vi на foo.java.

Мне нужен скрипт или инструмент, который бы сообщал мне, в какой терминальной сессии запущен этот vi. Я могу сделать "ps aux | grep vi", чтобы довольно легко найти pid конкретного vi. Было бы неплохо, если бы инструмент каким-то образом выделял терминал на панели задач.

Спасибо.

-Сэм

решение1

Каждому из ваших окон терминала будет назначен свой псевдотерминал, доступный по команде tty. Вы можете сделать перекрестную ссылку на него со TTYстолбцом вашего ps uвывода. Для интеграции с GUI я обычно находил достаточным добавить текущий идентификатор pty к заголовку окна моего терминала, используяxtitle, нравиться

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

Переход к окну по заголовку в моем оконном менеджере осуществляется легко, а вот насчет GNOME я не имею ни малейшего представления.

Связанный контент