Exemplo de script de shell para interromper a execução de todos os processos com um determinado UID? [duplicado]

0

Sou novo em scripts e não consigo encontrar nenhum exemplo na Internet para essa tarefa específica. Eu apreciaria muito um pouco de ajuda.

    
por Amelie 27.05.2018 / 10:01

3 respostas

2

Você pode fazer isso por meio de:

for i in $(pgrep -U $UID_OF_ANOTHER_USER); do kill -9 $i; done

OR

pkill -U $UID_OF_ANOTHER_USER

Você pode usar o primeiro para fazer algo mais além de apenas matar esses processos, como listar todos eles enquanto mata.

    
por 27.05.2018 / 10:11
1

Aqui está uma solução simples, que funcionará se você for root.

su $uid -c kill SIGSTOP -1

Explicação: torne-se esse usuário e mate tudo o que puder.

Todas as soluções exigirão CAP_KILL (permissão para matar qualquer processo) ou ser root tradicional (root tem essa permissão) e permissão (capacidade de alterar seu próprio uid), conforme usado por esta solução.

Note que enviei sigstop, isso irá pausar o processo (como solicitado por ☺). Escolha o sinal que você quer. Use sigkill como último recurso.

    
por 27.05.2018 / 13:31
0
killall -u $user -STOP

Isso é seguro se for executado como outro usuário e (para outros sinais) se nenhum processo pai pertencer ao usuário afetado.

A solução do

ctrl-alt-delor provavelmente é melhor (mais segura). Este tem a vantagem de lhe dar um código de saída real. O outro provavelmente não é o mesmo que su e kill se matam.

    
por 27.05.2018 / 15:37