Как найти идентификатор процесса команды, запущенной в другом терминале?

Если я запустил sleep 30 в одном окне PuTTY, как я могу найти идентификатор процесса команды sleep из другого окна PuTTY?

  • Есть ли способ скрыть потоки ядра из результатов команды ps?
  • Завершение скрипта оболочки bash, работающего в фоновом режиме
  • Захват полной структуры процесса / стека
  • Поле TIME в ps -ef
  • Top и ps не показывают тот же результат процессора
  • Список всех процессов без управления терминалом (только)?
  • Процесс, не указанный в «ps -ef» (AIX 7.1)
  • Как узнать имена потоков, которые выполняются на конкретном ядре
  • 2 Solutions collect form web for “Как найти идентификатор процесса команды, запущенной в другом терминале?”

    Команда pgrep

    Если в вашем дистрибутиве установлена ​​команда pgrep (например, из пакета procps ), вы можете использовать команду для поиска идентификаторов процессов по шаблону. Например:

     # Find the sleep commands belonging to the current user. pgrep -u $LOGNAME sleep 

    Эта команда найдет все совпадения, принадлежащие текущему пользователю, независимо от того, был ли процесс запущен в текущем терминале или другом, поэтому он будет работать для вашего варианта использования PuTTY.

    Тестирование команды pgrep

    Вы также можете проверить это на одном TTY или PTY. Рассматривать:

     $ sleep 30 & pgrep -u $LOGNAME sleep [1] 24021 24021 

    В этом примере сон помещается в фоновый режим, а Bash сообщает идентификатор задания и идентификатор заданного задания. Затем pgrep находит тот же PID в списке процессов и отправляет PID на стандартный вывод. Очевидно, цифры должны совпадать.

    Несколько совпадений

    Обратите внимание: если текущий пользователь имеет более одной команды ожидания, то pgrep будет правильно сообщать о нескольких PID. Например, следующее возвращает PID для фоновых заданий %1 и %2 :

     $ sleep 30 & sleep 30 & pgrep -u $LOGNAME sleep [1] 24063 [2] 24064 24063 24064 
     ps -u "your_login" | grep "sleep" | awk '{print $1}' 
    Linux и Unix - лучшая ОС в мире.