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

У меня есть процесс под названием «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> 

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

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). У этого есть множество вариантов.

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

  • Почему команда killall убивает только один экземпляр процесса?
  • Горячая запись EOF в файл, чтобы остановить любые процессы хвоста
  • Почему bash показывает «Terminated» после убийства процесса?
  • umount застопорился и не смог убить свой процесс
  • Как убить как процесс, так и подпроцесс?
  • Почему я не мог убить процесс NOHUP?
  • Закрытие многих окон gnuplot
  • Как убить упрямый процесс
  • Единственный случай - это бесперебойный сон?
  • процесс pkill, содержащий специальные символы
  • D state process kill
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.