Как я могу убить процесс с учетом его «команды»?

У меня есть процесс под названием «P1», прямо сейчас, как я убил процесс:

$ ps aux | grep "P1" " Now it returns two processes related to "P1": one is the actual P1 process I want to kill, the other one is the "grep P1" which I don't care. $ kill -9 <P1 pid> 

Однако я хочу объединить два процесса в один. В настоящее время я не смог найти эффективный способ сделать это, главным образом потому, что мне нужно искать результат из первой команды. Любой хороший метод?

  • Как выйти или отменить команду bad bash?
  • Альтернативный способ убить зомби-процесс
  • Отправьте процесс в фоновый режим с помощью PID
  • Убейте любую службу, запущенную на определенном порту
  • Почему системный вызов UNIX убивает имя 'kill'?
  • Как убить процесс с помощью одной команды?
  • сценарий оболочки для автоматического уничтожения процессов, соответствующих определенным критериям
  • Отфильтровывать и убивать не-докерные процессы
  • 2 Solutions collect form web for “Как я могу убить процесс с учетом его «команды»?”

    Вы можете использовать pgrep с флагом -x :

     kill -9 $(pgrep -x P1) 

    или лучше, с помощью pkill вы можете это сделать:

     pkill -9 -x P1 

    с BSD pkill :

     pkill 9 -x P1 

    Вы можете использовать killall(1) (по крайней мере, здесь, на Fedora Linux). У этого есть множество вариантов.

    Лично я использую его почти исключительно, когда знаю, что есть только один процесс с данным именем.

    Linux и Unix - лучшая ОС в мире.