Mate todas as tarefas com PID acima de um certo inteiro com o bash

1

Como posso buscar e matar todos os processos com um PID acima, por exemplo, 1000?

O uso de comandos como ps -A e top é bom para visualizar a lista de processos, mas como alguém só obteria os PIDs?

A lógica da comparação de números e da eliminação de tarefas não é realmente um problema. É apenas uma questão para descrever o que desejo realizar com mais clareza.

    
por Aleksander Azizi 28.08.2015 / 04:30

2 respostas

1
ps | tr -s ' ' | cut -d ' ' -f 2

lhe dará uma lista de PIDs. cut considera o segundo campo de saída separado por espaços, mas antes disso usamos tr para extrair vários espaços. Você pode então canalizar isso através de

egrep '\d{4}\d*'

para selecionar todos os números acima de 1000. Então você provavelmente poderia enviá-lo para xarg para matar.

1000 é fácil, mas, para um número arbitrário como o 32768, talvez seja necessário usar algo como sed para filtragem.

    
por 28.08.2015 / 06:45
1

Você poderia usar este comando:

ps -ef | grep "your_process" | awk '{print $2}' | grep -v 'grep' | xargs kill

Observação: "Seu_processo" seria seu "PID"

Mais:

ps -ef | grep "your_process" | awk '{print $2}' | xargs kill

valeria a pena tentar

    
por 28.08.2015 / 06:28