Как я могу убить процесс с помощью фраза в его названии? [дубликат]

Этот вопрос уже задан ответ здесь:

Мне нужно убить процесс, который содержит myName в своем описании. В настоящее время я делаю:

ps -ax |grep myName
I see PID
kill -9 PID

Как я могу сделать то же самое с одной командой, не вводя PID?

11
задан 22 April 2016 в 17:19

5 ответов

Если myName название процесса/исполняемого файла, который Вы хотите уничтожить, можно использовать:

pkill myName

pkill по умолчанию отправляет SIGTERM сигнал (сигнал 15). Если Вы хотите SIGKILL или сигнал 9, используйте:

pkilll -9 myName

Если myName не имя процесса или например, аргумент другой (долгой) команде, pkill (или pgrep) не мог бы работать как ожидалось. Таким образом, необходимо использовать -f опция. От man kill:

-f, --full
              The pattern is normally only matched against the  process  name.
              When -f is set, the full command line is used.
NOTES
The process name used for matching is limited to the 15 characters present
   in the output of /proc/pid/stat.  Use the -f option to match  against  the
   complete command line, /proc/pid/cmdline.

Так:

pkill -f myName

или

kill -9 $(pgrep -f myName)
22
ответ дан 23 April 2016 в 03:19

С использованием имени команды:

pkill -9 myscript

, Если Вы ищете строку в командной строке:

kill -9 $(ps ax | grep myName | fgrep -v grep | awk '{ print $1 }')

я должен предупредить Вас: вышеупомянутая команда может отправить SIGKILL сигнал больше чем к одному процессу.

0
ответ дан 23 April 2016 в 03:19
  • 1
    okk, благодарит дать мне решение, я собираюсь попробовать его. Для получения дополнительной информации Есть ли какое-либо бесплатное программное обеспечение, доступное для моей намеченной задачи? – jane 10 September 2017 в 19:21

Вы могли сделать, простое for loop по всему PID связалось с определенным именем процесса, как это:

$ for i in $( ps ax | awk '/[m]yName/ {print $1}' ); do kill ${i}; done

Это уничтожит все процессы, которые содержат слово: myName.

0
ответ дан 23 April 2016 в 03:19
  • 1
    Существуют некоторые программные обеспечения, я погуглил их, easeus, irecovery и т.д., можете, кто-либо из них полезен для меня? – jane 10 September 2017 в 19:23

Существует две очень аккуратных команды pgrep и pkill, которые позволяют вводить критерий поиска или часть названия команды, и это или обеспечит, PID процесса или (в случае pkill) уничтожают тот процесс.

$ pgrep -f firefox                                                             
23699

Выполнение той же команды с pkill и -f флаг закроет все окна Firefox.

Эти -f флаг необходим конкретно для поиска полной командной строки процесса.

0
ответ дан 23 April 2016 в 03:19
  • 1
    @jane Вам нужно программное обеспечение, которое может восстановление после EXT4 – Android Dev 11 September 2017 в 00:10

С pkill и отправка сигнал 9 , можно уничтожить процесс по имени:

sudo pkill -9 myName
0
ответ дан 23 April 2016 в 03:19
  • 1
    Хороший ответ, хотя я don' t понимают, почему Вы упомянули таблицу разделов вначале. Это не действительно проблема, проблема - то, что части файловой системы были перезаписаны. – Andrea Lazzarotto 11 September 2017 в 00:56

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

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