Я хочу выйти из процесса с помощью командной строки, но не могу вспомнить команду, чтобы найти идентификатор процесса. Кто-нибудь знает это?
источник
Я хочу выйти из процесса с помощью командной строки, но не могу вспомнить команду, чтобы найти идентификатор процесса. Кто-нибудь знает это?
Команда для определения идентификатора процесса (с учетом его имени) является pidof
. Однако, поскольку вы намерены завершить процесс, есть лучшие / более простые способы, чем pidof
сначала найти его pid:
Предполагая, что процесс, который вы хотите уничтожить, уникально идентифицируется по его имени (или вы хотите уничтожить все процессы с этим именем), вам не нужно знать его pid. Вы можете просто сделать killall processname
.
Если есть несколько процессов с одним и тем же именем, но вы хотите убить только один из них, использование pidof
не сильно вам поможет, потому что даст вам pids, но не даст вам никакой информации, чтобы определить, какой из pids относится к процессу, который вы действительно хотите убить.
В этом случае вы можете сделать так, ps aux | grep processname
чтобы показывались все процессы с заданным именем, а также консоль, на которой они запущены (если применимо), и аргументы, с которыми они были вызваны, что, как мы надеемся, позволит вам определить процесс, который вы ищете ,
Если процесс открыл какие-либо X-окна, вы также можете использовать, xkill
чтобы убить (вызвать, xkill
а затем нажмите на окно).
Вы должны смотреть на pgrep
и pkill
, два очень удобных и мощных утилит, которые можно найти на большинстве систем Linux и UNIX.
$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
Вы можете запустить ps -A
в терминале, чтобы показать все процессы (с их идентификатором процесса), которые в настоящее время работают.
grep
поиска по имени определенного процесса:ps -A | grep 'my name'
У меня тоже была похожая проблема. Я использовал
pstree -p
; это показало мне текущие запущенные процессы, включая идентификаторы процессов.источник
pidof
, Вопросman pidof
для деталей.источник
Мой любимый это
pstree -p | grep $(program_name)
. Это на самом деле затирает процесс, выделяет его и показывает pid в скобках.Мой следующий фаворит (особенно при программировании и необходимости всех пидов из процесса)
pgrep -law ""
. Это буквально дает вам каждый запуск pid, за которым следует приложение (с абсолютным путем).Это может быть уменьшено
pgrep -lw ""
для pid с последующим именем программы или дажеpgrep -l
для всех pidКонечно, вы можете искать определенную программу (или часть названия программы). (то есть
pgrep -lw firef
, вероятно, будет отображать что-то вроде «4567 firefox»).источник
pstree -psH $(pgrep prgram_name)
бы лучше для первого случая?Этот ответ от @Ben на дублированный вопрос решил мою проблему:
Подумайте об использовании
top
команды в терминале.через верх человека
источник