Preciso pesquisar um determinado processo e eliminar esse processo. Escrevi um comando como este:
ps -e | grep dmn | awk '{print $1}' | kill
Onde está o nome do processo dmn
. Mas isto não está funcionando. Como posso encontrar processos por nome e por kill
eles.
linux
bash
shell
command-line
command-line-arguments
usuário567879
fonte
fonte
$()
sintaxe:kill $(ps -e | grep dmn | awk '{print $1}')
.kill $(ps -efw | grep dmn | grep -v grep | awk '{print $2}')
não tenho certeza por que e não me importo o suficiente para examinar mais a fundo.kill
tentou matar até mesmo o processo 'grep' que estava tentando pesquisar o padrão\n
após cada awk, como emawk '{print $1"\n"}'
?Caso haja vários processos que você deseja remover, você pode usar isto:
ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill
Nota: Você precisa remover o próprio processo grep da saída, é por isso que
grep -v grep
é usado.fonte
Você poderia usar
se o seu sistema tiver o comando pkill .
fonte
Apenas adicionando outros, mas gosto de usar a capacidade dos recursos regex do awk:
kill $(ps | awk '/dmn/{print $1}')
fonte
Se você tiver o
pidof
comando em seu sistema (eu sei que shells como ZSH vêm com isso por padrão, a menos que esteja enganado), você poderia fazer algo parecido.kill -9 $(pidof dmn)
fonte
Você também pode usar killall :
fonte
Talvez você não precise
pipe
disso, se você tem opidof
comando e sabe o nome da imagem, eu fiz assim:kill $(pidof synergyc)
$()
Eu entendo isso, pois ele converte a saída em uma variável que pode usar kill, essencialmente como o pipe faria. Mais curto e mais fácil de entender do que algumas outras opções, mas também pode ser menos flexível e mais direto.fonte
for procid in $(ps -aux | grep "some search" | awk '{print $2}'); do kill -9 $procid; done
Olá amigos .. podemos fazer isso usando for loop.
"Alguma pesquisa" é aqui qualquer nome de processo que você deseja pesquisar, por exemplo "java", portanto, digamos que a contagem de processos java é 200+, então matar um por um será muito comum.
então você pode usar o comando acima.
Obrigado.
fonte
Use
pgrep
com a opção -f.kill $(pgrep -f dmn)
fonte
pgrep
, por que não apenaspkill -f dmn
?