Что такое терминальная команда для определения идентификатора процесса

Я хочу выйти из процесса с помощью командной строки, но не могу вспомнить команду, чтобы найти идентификатор процесса. Кто-нибудь знает это?

11
задан 16 June 2012 в 04:33

7 ответов

Вы можете запустить ps -A в терминале, чтобы показать все процессы (с их идентификатором процесса), которые в данный момент выполняются.

0
ответ дан 16 June 2012 в 04:33

Мой любимый это pstree -p | grep $(program_name). Это на самом деле затирает процесс, выделяет его и показывает pid в скобках.

Мой следующий фаворит (особенно при программировании и использовании всех пидов из процесса) - pgrep -law "". Это буквально дает вам каждый запуск pid, за которым следует приложение (с абсолютным путем).

Это может быть уменьшено до pgrep -lw "" для pid с последующим именем программы или даже просто pgrep -l для всех pid

Конечно, вы можете искать определенную программу (или часть имени программы) , (то есть pgrep -lw firef, вероятно, будет отображать что-то вроде «4567 firefox»).

0
ответ дан 16 June 2012 в 04:33

Команда для определения идентификатора процесса (с учетом его имени) - pidof. Однако, поскольку вы намереваетесь завершить процесс, есть лучшие / более простые способы, чем использовать pidof, чтобы сначала найти его pid:

Предполагая, что процесс, который вы хотите уничтожить, уникально идентифицируется по его имени (или вы хотите чтобы убить все процессы с таким именем), вам не нужно знать его pid. Вы можете просто сделать killall processname.

Если есть несколько процессов с одинаковыми именами, но вы хотите убить только один из них, использование pidof не сильно вам поможет, потому что даст вам pids, но не даст вам никакого информация, чтобы определить, какой из pids принадлежит процессу, который вы на самом деле хотите убить.

В этом случае вы можете сделать ps aux | grep processname, который покажет все процессы с заданным именем, а также консоль, на которой они запущены (если применимо), и аргументы, с которыми они были вызваны, что, как мы надеемся, позволит вам идентифицировать процесс, который вы ищете.

Если процесс открыл какие-либо X-окна, вы также можете использовать xkill для уничтожения (вызовите xkill и затем нажмите на окно).

0
ответ дан 16 June 2012 в 04:33

Вы должны взглянуть на pgrep и pkill, две очень удобные и мощные утилиты, которые встречаются в большинстве систем Linux и UNIX.

$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
0
ответ дан 16 June 2012 в 04:33

pidof . Выпуск man pidof для деталей.

0
ответ дан 16 June 2012 в 04:33

У меня тоже была похожая проблема. Я использовал pstree -p; это показало мне текущие запущенные процессы, включая идентификаторы процессов.

0
ответ дан 16 June 2012 в 04:33

Этот ответ от @Ben на дублирующий вопрос решил мою проблему:

Подумайте об использовании команды top в терминале.

   The  top  program  provides  a dynamic real-time view of a running
   system.  It can display system summary information as  well  as  a
   list  of processes or threads currently being managed by the Linux
   kernel.  The types of system summary  information  shown  and  the
   types,  order  and size of information displayed for processes are
   all user configurable and that configuration can be  made  persis‐
   tent across restarts.

через man top

0
ответ дан 16 June 2012 в 04:33

Другие вопросы по тегам:

Похожие вопросы: