Como faço para matar processos no Ubuntu?

127

Como faço para matar todos os processos em execução pela minha própria conta não-root?

Eu tenho alguns processos de smbd girando que eu causei na minha máquina windows e então eu telnettei para o servidor linux e eu quero matar esses processos de spinning. Não tenho autoridade para reiniciar serviços ou reinicializar a máquina.

    
por djangofan 17.02.2012 / 00:49

13 respostas

155

Para matar todos os processos que você tem permissão para matar, simplesmente execute o comando

kill -15 -1 ou kill -9 -1 dependendo do comportamento desejado (use man kill para detalhes)

Para matar um processo específico, por exemplo, firefox, simplesmente execute

pkill firefox ou killall firefox dependendo do comportamento desejado: O que é a diferença entre 'killall' e 'pkill'?

Se você quiser ver quais processos estão em execução, use o comando

ps -ef

Se você quiser pesquisar todos os processos pelo usuário bob, isso pode ajudar

pgrep -l -u bob

ou

ps -ef | grep bob
    
por ste_kwr 17.02.2012 / 00:58
42

Use sudo kill <pid> ou sudo killall <process-name>

    
por Chris Wayne 17.02.2012 / 00:50
19

Vamos tentar algo mais:

sudo apt-get install htop 

O comando top é a maneira tradicional de visualizar o uso de recursos do seu sistema e ver os processos que estão ocupando mais recursos do sistema. Top exibe uma lista de processos, com os que usam mais CPU no topo.

htop exibe as mesmas informações com um layout mais fácil de entender. Ele também permite selecionar processos com as teclas de seta e executar ações, como matá-los ou alterar sua prioridade, com as teclas F .

    
por Fantomas 12.01.2014 / 05:41
13

Você pode usar

ps -ax | grep application name 

Se a pesquisa do tipo firefox no terminal, como ps -ax | grep firefox , mostrar o ID do processo da aplicação correspondente. Você pode parar esse aplicativo pelo comando kill se process id = 1317,

kill -9 1317
    
por Xman Classical 22.07.2014 / 08:21
12

Eu usaria xkill . Digite xkill em um terminal e clique na janela ou digite xkill e o ID do processo e ele será finalizado.

Saiba mais sobre xkill em x.org.

    
por Alvar 27.12.2013 / 22:36
7

Para tentar eliminar todos os processos pertencentes a um usuário username , execute:

pkill -U username
    
por user129146 07.02.2013 / 03:30
5

Eu dividiria seu problema em duas partes:

1) Como encontro os processos iniciados por mim? Execute isto:

ps -u 'whoami'

O whoami é apenas o caso de você não saber o nome da conta que está usando, caso contrário, basta digitar o nome da conta sem as aspas anteriores.

Isso listará todos os processos que podem ser excluídos por sua conta.

2) O comando ps listará o número do processo, o TTY, o Tempo e o CMD. O ID do processo é a primeira coluna. Use esse número para matar o processo. Tenha cuidado ao matar o processo. Você pode quebrar algo se você matar o processo errado. Para matar um processo, você usará o comando kill , que envia um SIGNAL para o processo. O sinal indica o que o processo deve fazer. Por exemplo, enviar um -1 para o processo solicitará que ele recarregue o arquivo de configuração; enviar um -2 é equivalente a pressionar o Control + C nesse processo; -9 fará com que o kernel abandone o processo, sem comunicá-lo ao processo.

Supondo que ps -u whoami retornou algo como

  PID TTY          TIME CMD
 4333 pts/1    00:00:00 fish
 4335 ?        00:00:00 fishd
 4816 ?        00:00:00 intellij
 4868 ?        00:50:42 java
 4939 ?        00:00:19 fsnotifier64
 7667 ?        02:49:08 firefox
 7698 ?        00:00:00 unity-webapps-s

E você queria matar o processo firefox por seu ID de processo, então você faria:

kill -1 7667

Em seguida, você executaria novamente o mesmo comando ps e verificaria se o processo ainda estava em execução. Se ainda estiver em execução, faça um

kill -2 7667

trabalhando até -9 .

Para eliminar todos os processos iniciados pela sua conta, insira kill <level> -1 . O mesmo que antes: trabalhe até -9 .

Se você souber o nome do processo, basta ir em killall <processname> , onde está o que você está tentando matar. Por exemplo: killall fish (o peixe, nesse sentido, é o Friendly Interactive SHell).

A documentação para killall pode ser encontrada aqui: link

    
por Alexandre Santos 05.05.2015 / 01:37
2

... Todos os processos no Linux respondem aos sinais. Os sinais são uma forma de dizer aos programas para encerrar ou modificar seu comportamento.

Como enviar sinais de processos por PID

A maneira mais comum de passar sinais para um programa é com o comando kill.

Como você pode esperar, a funcionalidade padrão desse utilitário é tentar eliminar um processo:

kill PID_of_target_process

Envia o sinal TERM para o processo. O sinal TERM informa o processo para terminar. Isso permite que o programa realize operações de limpeza e saia sem problemas.

Se o programa está se comportando mal e não sai quando recebe o sinal TERM, podemos escalar o sinal passando o sinal KILL:

kill -KILL PID_of_target_process

Este é um sinal especial que não é enviado para o programa.

Em vez disso, ele é fornecido ao kernel do sistema operacional, que encerra o processo. Isso é usado para ignorar programas que ignoram os sinais enviados para eles ...

    
por jackal404258 03.05.2015 / 02:00
2

Eu escrevi um pequeno script que escrevi para matar (no meu caso) o Skype:

kill -s 9 'ps aux | grep skype | head -n 1 | cut -f4 -d" "'

Mas eu achei que por mais que isso funcionasse, não funcionou no dia seguinte porque o pid tinha um tamanho diferente e a quantidade de espaços era diferente

Então me deparei com este site e tentei

pgrep -l -u justin

que processa convenientemente processos no formato

[pid] [name]

Então eu ajustei meu código no script para isso:

kill -s 9 'pgrep -l -u justin | grep skype | cut -f1 -d" "'

O que isto faz é canalizar todos os processos que o justin está executando (que pode ser alterado para qualquer nome de usuário) para grep que procura por skype (isso pode ser alterado para seu processo) linha para cut que, em seguida, lê apenas o PID e, finalmente, usa esse PID no comando kill para eliminá-lo.

    
por justingiffard 27.12.2013 / 22:10
2

Com esta aplicação, pode ver as listagens de programas

instalar o htop

sudo apt-get install htop

para ver processo e processo de kill Você pode instalá-lo e simplesmente excluir

    
por Reza Bojnordi 27.05.2017 / 14:21
0

Eu usei o seguinte procedimento para matar um processo no Ubuntu ::

Passo 1: Obtenha o pid do processo usando grep ou você pode usar -C também ::

ps aux | -C 'filename'

ou

ps -ef | -C 'filename'

ou

ps aux | grep 'filename'

ou

ps -ef | grep 'filename' 

Passo 2: anote o número de pid.

Passo 3: use o comando 'kill' junto com o número do pid como:

kill pidnumber
    
por harrypotter0 27.05.2017 / 13:46
0

Ctrl + Alt + Delete pode ser configurado para dar acesso ao gerenciador de tarefas, onde é fácil eliminar processos com alguns cliques e, para mim, menos requisito para lembrar comandos que poderiam ser prejudiciais se feitos de maneira errada:

link

    
por Cedric Eveleigh 27.05.2017 / 13:52
0

Aqui está um script python simples que escrevi, killProcess.py, que aceita qualquer coisa como uma entrada e mata isso.

Eu escrevi este script porque eu tenho muitos processos de nó ou python que eu quero matar individualmente e programaticamente. Não consigo usar o "killall python" porque ele interromperá os processos que preciso continuar em execução.

Por favor nomeie o arquivo "killProcess.py", então adicione o nome do script que você quer parar. Por exemplo: python killProcess.py runnablePoller.py matará o arquivo runnablePoller.py

import os;
import sys;
for arg in sys.argv:
    if(arg!="killProcess.py"):
        process=arg;
        print(process);
processes =os.popen("ps -ef | grep "+process).read();
processes=processes.split("\n");
processes=processes[0].split(" ");
#print(processes);
for p in processes:
    try:
        pid=int(p);
        print(pid); 
        break;
    except:
        continue;

os.system("kill "+str(pid));
    
por nick carraway 18.06.2017 / 21:39