Как получить и вывести pid 2-й вкладки терминала на 1-й вкладке терминала?

#linux #bash #terminal #pid

#линукс #удар #терминал #pid

Вопрос:

Вопрос связан с системой Linux Mint 64, 20.x с рабочим столом Cinnamon

Запустив следующий пример кода на терминале, выполните следующие действия:

  • выведите pid 1-й вкладки терминала на 1-ю вкладку терминала
  • создайте 2-ю вкладку терминала
  • выведите одну вещь на 2-ю вкладку терминала

Пример кода:

 echo "pid von TAB1: $"; gnome-terminal --title="Titel of 2nd TAB" --tab --active -- bash -c "sensors; read exec bash"  

Вкладки терминала стенда имеют собственный pid. Это можно увидеть по:

 ps ax | grep bash  

Вкладки терминала стенда могут быть закрыты для целей тестирования его собственным pid с помощью:

 kill 123456  

Как получить и вывести pid 2-й вкладки терминала на 1-й вкладке терминала ?

Комментарии:

1. pgrep может помочь, но у вас всегда есть возможность найти другой терминал, чем тот, который вы ищете…

2. @Fravadona, правильно, pgrep bash выведет список теминальных pid. Таким образом, можно получить список до и после открытия новой вкладки терминала. A на этом пути нет 100% уверенности в том, что вы получите правильный pid. Это может быть возможно за $$ или $! ?

3. Вы можете использовать pgrep -P , чтобы узнать дочерний процесс управляющего процесса, которому может принадлежать терминал, но узнать, какой процесс на вкладке является одним из многих, будет сложно. Этот процесс управления может быть демоном, одноэлементной службой или просто родительским.

4. @konsolebox, это звучит интересно. A pgrep -P $$ на первой вкладке терминала, не указывайте мне pid 2-й вкладки терминала или еще один pid.

5. $ $ — это PID оболочки, а не процесс управления. Посмотрите на вывод pstree. Может быть, вы найдете в нем подсказки. Опять же, процесс управления является только теоретическим.

Ответ №1:

Частичное решение, которое делает следующее:

  • Вывод на первой вкладке терминала, все pid, связанные с bash, перед открытием 2-й вкладки терминала
  • Вывод значения true pid с вкладки первый терминал на вкладке первый терминал
  • Вывод значения true pid со второй вкладки терминала на второй вкладке терминала
  • Вывод на первой вкладке терминала, все pid, связанные с bash, после открытия 2-й вкладки терминала
 prep bash; echo "pid von TAB1: $"; gnome-terminal --title="Titel of 2nd TAB" --tab --active -- bash -c 'echo $ amp; sensors; read exec bash'; pgrep bash  

Следующее не решается этим частичным решением:

  • Не удается вывести вкладку pid второго терминала на вкладке первого терминала.

Ответ №2:

Частичное решение, которое делает следующее:

  • выведите на первой вкладке bash список pid, связанных с bash, перед открытием 2-й вкладки bash
  • выведите на первой вкладке bash список pid, связанных с bash, после открытия 2-й вкладки bash

эхо-список вкладок bash перед открытием 2-й вкладки; pgrep bash; gnome-терминал-заголовок=»Название 2-й ВКЛАДКИ» -вкладка-активна — bash -c «датчики; прочитайте exec bash»; эхо-список вкладок bash, включая. 2-я вкладка bash; pgrep bash

Следующие проблемы не решаются этим частичным решением:

  • как получить в качестве вывода пид, который находится на 2-м пид-выходе, а не на первом пид-выходе