Когда мне нужно убить фоновый процесс, я делаю ps -e | grep <process_name>
Который печатает что-то вроде этого 1766 ? 00:00:13 conky
, тогда я использую идентификатор процесса, kill
как это так kill 1766
.
Есть ли способ, которым я могу упростить это? Сделать это быстрее? уменьшить количество печатать?
Ответы:
(TL, ДР:
pgrep
,pkill
)Многие варианты Unix поставляются с
pgrep
и его компаньономpkill
: Solaris , Linux (часть стандартных утилит процессов , может отсутствовать в встроенных системах Linux), FreeBSD , OpenBSD , NetBSD ,… но только из MacPorts на OS X , а не AIX , и только недавно в HP-UX .pgrep
Утилита показывает идентификатор процесса процессов подобранных по имени, пользователю и несколько других критериев. Аргумент topgrep
интерпретируется как регулярное выражение, которое должно соответствовать части имени исполняемого файла процесса (если вы не передадите опцию, чтобы изменить это). Если вы позвонитеpkill
вместоpgrep
утилита отправляет сигнал вместо отображения идентификаторов процесса.Еще одна похожая утилита - pidof . В Linux он предоставляется SysVinit или BusyBox (так что вы часто найдете его во встроенной системе Linux, которая не имеет
pgrep
); Есть также порты на других вариантах Unix. Уpidof
утилиты меньше параметров, она в основном совпадает только с полными именами исполняемых файлов. Его вспомогательная утилитаkillall
отправляет сигнал соответствующим программам¹.¹ Остерегайтесь, что
killall
имеет другое значение для Solaris и, возможно, других вариантов Unix; не вводите вkillall
качестве пользователя root на Solaris.источник
killall ProcessName
(у этой команды есть недостаток в том, что вы не всегда знаете имя процесса программы).pidof ProccessName
иkill the result form pidof
ps xu | grep <process name> | grep -v grep | awk '{ print $2 }' | xargs kill -9
Попробуйте эту строку и повторно используйте ее для истории вашего bash, или лучше создайте для нее псевдоним.источник
pidof
кажется немного легче, но все же он занимает 2 шагаХотя у Ханана есть несколько хороших предложений, я добавлю
pgrep
/pkill
. Они позволяют намного лучше контролировать процесс, который вы находите, и регулярные выражения, если вы не знаете точный процесс, который вам нужно убить.PS Ханана
pidof
можно подаватьkill
напрямую с помощью галочек:источник
pkill
это было именно то, что я искал, я большую часть времени знаю имя процесса, в основном егоconky
илиfirefox
илиchrome
или что-то подобное. СпасибоКак насчет этого -
Пример:
Обновить:
К сожалению, это , очевидно , не соответствует требованиям меньше печатать так хороший способ сделать это было бы добавить
function
к вашему.bashrc
,.profile
или любой другой сценарий запуска. Функция может быть что-то вроде этого -После добавления вы можете просто передать имя вашего процесса:
источник