http://www.zago.eti.br/kill.txt FAQ e dicas pra encerrar (matar) processos na força bruta. Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux Veja também neste diretório (site) FAQ top.txt -> informnações de consumo de memoria, CPU por processo. http://www.zago.eti.br/top.txt processos.txt -> dicas sobre processos, listar, logs, prioridades... http://www.zago.eti.br/processos.txt http://www.zago.eti.br/log.txt http://www.zago.eti.br/erros.txt veja mais sobre iniciar e parar processos no FAQ: http://www.zago.eti.br/iniciar.txt ******************************************************** Ambiente gráfico. Em ambiente KDE, pressione as teclas CTRL+ESC, tem varias informações e opção para encerrar processos. XKILL Quando algum aplicativo travar em ambiente gráfico, execute xkill, ele muda a seta mouse, clique com botão acionador sobre a janela do aplicativo que deseja matar. Localize xkill no menu do seu gerenciador de janelas, no KDE use o atalho, ALT+F2 execute xkill. Ou no konsole digite xkill depois posicione o novo cursor do mouse sobre a janela do aplicativo que travou e click com botão acionador pra matar o processo. [zago@faq zago]$ xkill Select the window whose client you wish to kill with button 1.... xkill: killing creator of resource 0x2403dd6 Após o comando xkill vai mudar o cursos do mouse, o formato difere conforme a distro. No CL9 e CL10 vira um quadrado, o primeiro click do mouse vai matar a janela sobre a qual ele estiver, portanto mova o mouse de maneira que o ponteiro (quadrado) fique sobre a aplicação (janela) que deseja matar, depois é só dar um clique com o botão acionador. ******************************************************** KILL O comando kill serve para matar um processo, para instantaneamente a execução do programa, não tem pergunta de confirmação, o resultado sobre o processo (programa) que se executa o comando kill pode perder ou danificar dados, procure ter um pouco de cuidado ao usar este comando, em servidores pode interromper gravação de dados em banco de dados e corromper ou perder dados, em muitos casos pode ser mais prudente parar o serviço com as ferramentas próprias do pacote, também não recomendável mas menos danosa que o kill, alguns programas tem comando próprio para inicar e parar o serviço, por exemplo: samba, cups e etc.. service smbd status service smbd stop service cups status service cups stop Lembre que qualquer forma de parar um processo na força bruta pode trazer consequencias indesejáveis, mas quando não tem outra saida e somente em ultimo caso, recorra aos poderes mortais do kill. Neste documento tem varios exemplos de utilização do kill, o mais simplificado é dar um ps -aux pra ver quais são os processos que estão rodando e seu respectivo PID que é o numero do processo, depois execute kill -9 9999 onde 9999 é o numero do processo que queira matar. Ou substitua o nome do processo no exemplo abaixo, por exemplo, pra pra matar os processos rodando pelo bittorrent, utilize esta linha de comando: kill -9 $(ps ax|grep "python"|awk '{print $1}') Procure testar antes de aplicar, use echo em lugar de kill -9, veja exemplos. echo `ps -aux | grep btdownloadcurses | tr -s " " | cut -d" " -f2` Warning: bad syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html 18058 18098 18109 kill -9 `ps -aux | grep btdownloadcurses | tr -s " " | cut -d" " -f2` este (tr -s " ") serve para transformar espaços contínuos em somente um espaço. Ou da forma mais simples, tem o mesmo resultado... pkill python pkill btdownloadcurses ******************************************************** killall -HUP Reiniciar um processo. killall -HUP processo Reiniciar um processo, recarregar, reload, reiniciar e afins.. Muitos tutoriais e mensagens em listas ou forum indicam o uso de killall -HUP processo, por exempro pra recarregar configuações do squid tem indicações como: killall -HUP squid Alguns pacotes tem comando especifico pra reiniciar o serviço, portando mais apropriado, por exemplo, após alterações nas configurações do Squid pra que elas entrem em funcionamento, execute: squid -k reconfigure Pro Postfix recarregar o arquivo de configuração com alterações efetuadas execute: service postfix reload Também tem a opção de service processo restart, por exemplo pra reiniciar o serviço de rede, samba e etc... service network restart service smbd restart Antes de usar killall -HUP, procure na documentação do pacote ou processo que está rodando pra ver se não tem indicação de comando pra tal tarefa. Veja mais sobre processos em: http://www.zago.eti.br/iniciar.txt http://www.zago.eti.br/processos.txt ******************************************************** killall /usr/lib/firefox/firefox-bin Matar processo aplicando killall no binario do executável. Matar firefox sem ter que descobrir o PID. Firefox é um shell script que serve para configurar variaveis de ambiente e chamar o firefox-bin. Veja o resultado de: ps -aux | grep firefox zago 6401 0.0 0.3 9212 1592 ? S 21:16 0:00 /bin/sh /usr/bin/firefox zago 6407 14.2 6.4 60648 30768 ? Sl 21:16 0:02 /usr/lib/firefox/firefox-bin o executável do firefox é este: /usr/lib/firefox/firefox-bin Para matar o firefox pode aplicar esta linha de comando (SUSE 10.0). killall /usr/lib/firefox/firefox-bin Outro formato, exemplo para matar wget killall -9 wget ******************************************************** derrubar um usuario da minha maquina. ps -u usuario --no-heading | awk '{print $1}' | xargs kill onde está "usuario" coloque o nome usuário que vai ser derrubado. Traduzindo: ps -u usuario --no-heading -> exibe os processos do usuário informado awk '{print $1}' -> pegar os pids que vem na primeira coluna xargs kill -> passar o numero do pids para o kill encerrar o processo. ******************************************************** pkill = matar porcessos pgrep = pegar o numero do PID pgrep, pkill - look up or signal processes based on name and other attributes pkill pkill wget pkill apache2 SUSE 10.1 - pkill e pgrep faz parte do pacote procps rpm -qif /usr/bin/pkill man pkill pgrep lista os PID, execute (pgrep nomeprocesso). Exemplo de retorno do comando para listar processos do ssh pgrep ssh 5241 5510 6174 ******************************************************** Resumo de opções para matar um processo, o exemplo abaixo utilizo no script para matar o bittorrent, quando falha em uma instalação, comento a linha e tento com as outras opções. No CL10 funciona a linha que mata porcesso python mas falha no SUSE 10.1, a solução para SUSE 10.1 é esta linha (killall -9 btdownloadheadless) Segue uma lista de opções para testar. killall -9 python killall -9 btdownloadheadless kill -9 $(ps ax|grep "python"|awk '{print $1}') pkill python pkill btdownloadheadless ******************************************************** Alguns processos tem arquivo especifico para controle do PID, estes arquivos tem terminação .pid Isto pode causar problemas quando o processo morre e mantém o arquivo de controle do PID, tenho notado este problema com Squid, já tive que localizar o arquivo do PID e apagar para conseguir iniciar o serviço. Isto não é regra nem deve ter sido a causa do problema, mas fica a dica, caso queira procurar estes arquivos, execute esta linha de comando. find / -name *.pid Deve retornar o caminho e arquivos com terminação .pid, (veja parte do resultado.) /var/lib/dhcp/var/run/dhcpd.pid /var/run/sshd.init.pid /var/run/syslog-ng.pid /var/run/cron.pid ******************************************************** Algum aplicativo (ex: Netscape) travou --------------------------------- Eu já ouvi pessoas dizendo que Linux não trava. O meu pelo menos já travou e tive que resetar o micro. Entretanto, isto é raro de ocorrer (se ocorrer frequentemente, verifique interrupções, atualize a versão, etc.). Mais comum é o caso de algum aplicativo travar. Ex: o Netscape. O que fazer? Primeiro busque pelo número do processo correspondente (ex: Netscape), usando o comando ------------- $ ps ax|grep netscape 771 tty1 S 2:16 /usr/lib/netscape/netscape-communicator 930 pts/1 R 0:00 grep netscape ------------- Após localizar o número do processo (no exemplo 771) tente: ------------- kill -1 771 ------------- Se isto não resolver, tente: ------------- kill -15 771 ------------- Se mesmo assim, não resolver tente o kill mais poderoso de todos: ------------- kill -9 771 ------------- O número (o signal) 1, 15 ou 9 diz como o processo será "morto". Por exemplo, é possível que o processo libere certos recursos ao sistema dependendo do nível do "kill". Por isso você deve começar com os kills menos poderosos na esperança de não danificar o seu sistema. No caso do Netscape, o kill que costuma funcionar após ele travar é o mais drástico, ou seja, o: ------------- kill -9 #processo ------------- ************************************************************************************** Como faço para parar um processo? se você sabe o nome do processo, encerre o processo através do comando: #killall ; ex.: #killall netscape se você sabe o ID do processo (PID), encerre o processo através do comando: #kill -9 Como faço para descobrir o PID e/ou o nome de um processo? A)em modo gráfico (KDE), use o gerenciador de tarefas B)em modo texto... se você não tem o PID nem o nome do processo, para obter ambos digite o comando: #ps -aux |more se você tem o nome do processo, para obter o PID digite o comando: #ps aux | grep -- ************************************************************************************** De: Rafael Diniz Para: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Por que o Kill não mata? Data: 27 Feb 2003 21:37:35 +0000 O kill, por padrão, manda o SIGTERM para a aplicação. Use o kill -9 para ele mandar um SIGKILL. assim: $ kill -9 123456 Abraços, Rafael Diniz ************************************************************************************** De: Eckhardt, Rodolpho H. O. Para: alexander@edem.g12.br Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Por que o Kill não mata? Data: 27 Feb 2003 20:46:16 -0300 Fala, Tente o seguinte da proxima vez: kill -s 9 Um abraco, ************************************************************************************** De: Antonio S. Martins Jr. Para: Gustavo Mota Carvalhaes Cc: lista linux-br Assunto: Re: (linux-br) Dores de cabeça ainda c/ Kill -9 Data: 28 Feb 2003 20:24:28 -0300 On 28 Feb 2003, Gustavo Mota Carvalhaes wrote: > Oi, pessoal! Primeiramente obrigado pelos vários feedbacks. > Tentei o q o Thiago Macieira sugeriu dando um kill -KILL ..., mas nenhum > resultado satisfatório. Ah, na verdade o processo foi morto sim, mas > isso jah havia acontecido anteriormente com o kill -9 PID q eu havia > dado; porém a linha ainda continuava bloqueada. Ñ tenho a mínima idéia > como liberá-la. Lendo um outro e-mail o do nosso tb colega Zago, ele > sugeriu soltar o cabo do modem da placa alegando q jah passou por isso. > Disse q era problema c/ seu modem. Fiz dito e feito, mas meu modem eh um > US Robotics, NÃO EH WINMODEM - MAS HARD MODEM. Serah q o big problem eh > esse mesmo?!?! Gostaria de suas ajudas mais uma vez. Ola, O seu problema, eh que o kill esta instruindo o processo a sair sem resetar o modem. Voce pode tentar com um kill -TERM (voce tem uma lista usando o kill -l). Que vai pedir ao programa para terminar, e provavelmente vai resetar o modem. Se nao der certo, voce pode tentar tambem usando o minicom. Como ele reseta o modem quando eh carregado vai desconectar a sua linha! Antonio. ************************************************************************************** De: Thiago Macieira Para: Gustavo Mota Carvalhaes Cc: lista linux-br Assunto: Re: (linux-br) Dores de cabeça ainda c/ Kill -9 Data: 01 Mar 2003 00:28:30 +0100 Gustavo Mota Carvalhaes wrote: > Oi, pessoal! Primeiramente obrigado pelos vários feedbacks. >Tentei o q o Thiago Macieira sugeriu dando um kill -KILL ..., mas nenhum >resultado satisfatório. Ah, na verdade o processo foi morto sim, mas >isso jah havia acontecido anteriormente com o kill -9 PID q eu havia >dado; porém a linha ainda continuava bloqueada. Ñ tenho a mínima idéia >como liberá-la. Lendo um outro e-mail o do nosso tb colega Zago, ele >sugeriu soltar o cabo do modem da placa alegando q jah passou por isso. >Disse q era problema c/ seu modem. Fiz dito e feito, mas meu modem eh um >US Robotics, NÃO EH WINMODEM - MAS HARD MODEM. Serah q o big problem eh >esse mesmo?!?! Gostaria de suas ajudas mais uma vez. Desculpe, não há problema nenhum no que você descreveu acima. Se você matou o processo sem dar-lhe chance de terminar corretamente (usando o SIGKILL), o modem continua funcionando como se nada tivesse acontecido. Como é que o modem vai adivinhar que era para desconectar? Basta usar qualquer programa de controle de modem e digite: +++ ATH ele desconectará Ou faça como outros sugeriram: puxe o fio do telefone. -- ************************************************************************************** De: Thiago Macieira Para: Alexander Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Por que o Kill não mata? Data: 28 Feb 2003 12:45:50 +0100 Gustavo Vasconcelos wrote: >Olá Alexander! > >O kill por si só envia ao programa (processo) um sinal SIGTERM, mandando >o processo ser finalizado imediatamente. Na maioria dos casos isso >realmente causa o programa sair, mas para programas que estejam travados >o kill somente é inútil. > >Para isso você deve mandar o kill não enviar um sinal, mas literalmente >MATAR o software bagunceiro que tá tirando onda do teu sistema. Nest >caso, nada como o: > >$ kill -KILL 1024 Completando: existem alguns poucos casos em que um processo não morre nem mesmo com SIGKILL. Que eu me lembre, são estes: 1) o processo é uma tarefa do kernel que aparece como processo. Você não pode matá-los. Numa listagem do ps, você verá que esses processos ocupam sempre 0 bytes de memória. 2) processos em estado Z (zumbi). Estes processos JÁ estão mortos, você não pode matá-los de novo. Eles só precisam que o processo-pai descubra que eles morreram. 3) processos em estado D (uninterruptible sleep). Nenhum sinal é entregue a um processo em estado D. O kernel aguarda que o processo volte ao estado S ou R para poder mandar o sinal. Note que o estado D geralmente é associado a atividade de disco ou de rede e não deve durar mais que alguns instantes. Se demorar mais, provavelmente você está sob alta carga no sistema. Se um processo ficar travado em D, provavelmente ocorreu alguma coisa ainda mais grave: se você tem NFS e o servidor NFS não responde, qualquer acesso ao dispostivo montado via NFS causará a entrada em estado D e sairá daí até que o servidor NFS volte. Ou então houve algum crash no seu kernel e o processo não voltou de D. Nesse caso, reinicialize. -- ************************************************************************************** De: Gustavo Vasconcelos Para: Alexander Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Por que o Kill não mata? Data: 28 Feb 2003 02:22:42 -0300 Olá Alexander! O kill por si só envia ao programa (processo) um sinal SIGTERM, mandando o processo ser finalizado imediatamente. Na maioria dos casos isso realmente causa o programa sair, mas para programas que estejam travados o kill somente é inútil. Para isso você deve mandar o kill não enviar um sinal, mas literalmente MATAR o software bagunceiro que tá tirando onda do teu sistema. Nest caso, nada como o: $ kill -KILL 1024 Ou o similar: $ kill -9 1024 Se ainda ssim o processo não for morto, verifique se você tem permissão para matá-lo (por motivos óbvios um user não pode matar processos do outro). Se o processo sobreviver a um kill -9 logado como root... bom.. é hora de exorcizar o micro... []'s Gustavo ************************************************************************************** De:  Andre Luiz da Silva Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Dificuldade para matar processo Data:  Wed, 1 Oct 2003 11:21:26 +0000 Creio que isso seja um pouco de falta de atencao... tente ler a documentacao com mais atencao, mas... para matar um processo eh: kill -9           ou... killall -9 falow! ************************************************************************* De:  Jorge Godoy Para:  linux-br@bazar2.conectiva.com.br Cc:  Alexandre Franca Assunto:  Re: (linux-br) Faltou energia. Agora, impressora USB não funciona mais. :-( Data:  Tue, 9 Mar 2004 22:25:27 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Saturday 06 March 2004 06:46, Syndson Silva wrote: >       ps -ax  |   grep 'gs' > >       A seguir devem aparecer os números dos processos que ainda esão ativos > (um em cada linha) pelo gs.  Daí é só matá-los, com... > >       kill -9   número_do_seu_processo,_visto_no_ps_acima Ou usar as facilidades do Linux. killall gs Deixe a máquina fazer o trabalho por você. ;-) - -- Godoy.     ************************************************************************* De:  Jorge Anselmo Para:  Miguel da Silva , linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Reiniciando daemons sem ter que reiniciar a máquina... Data:  Wed, 5 May 2004 11:55:49 -0300 faz isso, killall -HUP servico Anselmo Em Qua 05 Mai 2004 10:43, Miguel da Silva escreveu: > Vejam só ... sempre que necessito reiniciar um daemon acabo tendo que > resetar a máquina. Alguma sugestão sobre como "derrubar" um daemon e > colocá-lo para rodar novamente sem ter que resetar o computador? Estou > usando Debian 3.0. ************************************************************************* De: sergio.ps Para: linux-br@bazar2.conectiva.com.br Assunto: (linux-br)Descobrindo e Matando Processos Data: Mon, 11 Jul 2005 13:37:23 -0300 Fala aí Gustavo, blz ? Usa o comando pidof... pidof squid depois da um kill nele... Tudo num comando só: kill `pidof squid` ou killall squid Abraços, Sérgio. > Bom dia Lista! > > Tenho um probleminha com o squid. É o seguinte: > Não sei o porque, mas toda vez q vou iniciar o servidor, o squid fica > com um processo preso. > > ps ax |grep squid não me mostra o processo. > Somente quando tento squid -D, aí sim ele me mostra o numero do processo. > Então, faço kill -9 nr_processo e logo rodo o squid -D novamente e boa! > Funciona! > > Gostaria de saber, como eu faço para filtrar somente o numero do > processo do squid e depois executar o kill nesse numero. > Quero fazer um script q "descubra" o nr_processo, mate-o e inicie o > squid, automaticamente. Assim, coloco no rc.local e o meu cliente ficará > feliz! > > Espero ter me expressado com clareza, muito obrigado! > > > Gustavo > Paradoxo Informática De: sergio.ps Para: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)Descobrindo e Matando Processos Data: Mon, 11 Jul 2005 13:55:46 -0300 Olá novamente Gustavo. Esqueci que o Squid pode ter mais de um PID. :-) O conjunto de comandos abaixo é de uma única linha e mata todos os PIDs do Squid e de qualquer outro programa. ps aux | grep squid > /tmp/squid.txt && cat -s /tmp/squid.txt | while read campo; do pid=`echo "$campo" | awk -F" " '{print $2}'`; echo "$pid"; kill $pid; done; rm -f /tmp/squid.txt Abraços, Sérgio. ************************************************************************* De: Guilherme Gall Responder A: Guilherme Gall Para: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)derrubar user Data: Mon, 1 Aug 2005 22:41:14 -0300 On 8/1/05, Deuzenildo wrote: > ola lista, > tenho um cl10 instalado em um cliente meu, o que acontece é o > seguinte, eles usam um prog em MSDOS e de vez em quando, naum > conseguem acessar determinado modulo pq tem um user usando lá e na > verdade naum tem ninguem usando, quando isso ocorria no nt, eles > derrubavam o user, mas no linux naum sabem como proceder, e eu tb > naum, alguem pode me dar uma dica de como fazer isso?? > > fico feliz em ser ajudado. > valeus!! > Olá Deuzenildo, Não sei se é exatamente isso que você quer, mas quando eu quero derrubar o terminal que um usuário está usando eu utilizo o comando: fuser -k /dev/ttyX (onde "X" é o número do terminal que o usuário está usando) Quando você usa esse comando o usuário volta imediatamente a tela de login. Espero ter sido útil, Guilherme Gall ************************************************************************* ************************************************************************* *************************************************************************