Muitas vezes, precisamos encerrar um processo por meio de um terminal. Se soubermos o nome completo do processo (por exemplo: kate) não temos problemas, um simples:
killall kate
Isso resolve o problema para nós ... mas o que acontece se não soubermos o nome exato do processo?
Nessas ocasiões, temos que listar todos os processos com ps aux conforme mostrado na seguinte captura de tela:
Em seguida, procure o PID do processo, que neste caso procuramos o PID do kate:
kill 3808
E pronto, aí nós matamos o processo.
Bom ... em uma única linha podemos pesquisar o processo (sem precisar saber o nome completo), descobrir seu PID, e também matá-lo:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill
Como podem ver:
- Listamos os processos (ps aux)
- Não sabemos o nome completo ou exato de kate (hey, pode ser kate-editor ou algo parecido), então apenas filtramos por gato (grep kat)
- Mas teremos dois processos relacionados a kat se usarmos apenas este filtro, um que é o processo de kate e outro que é o processo que ativamos para filtrar, deixo uma captura de tela para que você possa terminar de entender: (Observe que existem 2 linhas, ou seja, 2 processos)
- Para evitar o que foi explicado antes, fazemos outro filtro (grep -v grep) O que faremos é o oposto ... se filtrarmos usando grep, ele só mostrará as correspondências com o filtro, grep -v Nós instruímos você a NÃO mostrar as correspondências, mas mostrar o que não corresponde. Mostro a captura de tela de como seria o resultado até agora: (Observe que agora apenas o processo de Kate aparece)
- Bom, já temos o processo que queremos matar isolado, agora só temos que extrair o seu PID, que é o 2º número, ou seja, 4062. E o PID está na 2ª coluna (1ª coluna contém usuário com UID 1000), então usando awk podemos dizer que ele só mostra a partir dessa linha o que encontra na 2ª coluna (awk '{print $ 2}') O que nos mostraria apenas o número do processo, ou seja, apenas o PID aparecerá no terminal.
- Mas a gente não quer mostrar o PID, o que a gente quer é matar o processo com aquele PID ... então vamos fazer isso, vamos passar o que temos até agora para o comando matar e pronto (xargs matam)
- O que isso xargs significa? ... simples, neste caso não podemos passar o PID para matar apenas com tubos ( | ), isso simplesmente não é suficiente, então xargs (que permite passar valores ou dados e depois executá-los ou eliminá-los) é o que nos permitirá terminar o trabalho.
E aqui termina 😀
Sim ... Eu sei que isso parece um pouco complexo, e é exatamente por isso que tentei explicar da melhor maneira que pude.
Sei que possivelmente poucos necessitarão deste comando, mas o objetivo deste artigo é o mesmo do DesdeLinux, ensine-lhes algo novo todos os dias, sempre tentando fazer com que percam o medo do Linux... e, pessoalmente, também adoraria que aprendessem a usar o terminal sem medo 😉
Enfim ... espero que tenha achado interessante, continuo aprendendo a usar awk o que é realmente ótimo hehe.
lembranças
É verdade, o awk tem sido muito útil para mim e acho que quem precisa manipular arquivos de texto estruturados é altamente recomendável saber como usá-lo.
Eu só tenho uma pergunta (que não tem nada a ver com a entrada: D), como (e com qual programa) você fez aquele efeito de desfoque que permite destacar uma parte da captura de tela?
Saudações.
Testando se for do formato funciona e se não alguém me diga como fazer isso
Muito obrigado.
Bem, sim ... Eu redescobri o Linux agora que sei como trabalhar com o awk HAHAHAHA.
Sobre o efeito e tal, nada ... é só o Gimp 😀
Eu seleciono a parte que desejo destacar, recorto com [Ctrl] + [X] e colo como uma nova camada, então seleciono a camada inferior (que é aquela que desejo opacificar) e vou para Filtros- »Gaussiano (ou o que você escrever hehe) e voila.
Agora, para dar o efeito escuro, eu simplesmente crio uma nova camada (fundo branco) e coloco entre as duas que eu já tinha, coloco a cor preta e na barra de transparência (canto superior direito) movo para onde Consigo o efeito desejado.
Saudações e obrigado pelo comentário 🙂
Excelente!!
Se o processo for de um programa visível, nada mais confortável do que digitar matar no console, clique no programa para matar e pronto.
clique no programa para matar
hehe sim ... isso presumindo que você tenha uma GUI hehe.
É isso mesmo, é por isso que disse "se o processo for de um programa que é visível."
É mais fácil clicar no botão com o "X". GNOME Shell ainda tem esse botão, certo? :-D.
Se o programa estiver travado (que é o principal motivo pelo qual você precisaria interromper seu processo), é lógico que esse botão não responderá, não importa o quanto você o pressione.
Acho que o GNOME Shell irá removê-lo em breve para que você possa ver a maravilha tátil de fechar janelas arrastando-as para a parte inferior da tela como no Windows 8. Não é preciso dizer que em monitores widescreen é um exercício fantástico.
Eu entendo agora. Nesse caso, prefiro Control + Alt + Esc (no KDE).
Mal posso esperar para ver as novas visualizações do GNOME Shell, elas são um verdadeiro mimo.
Isso faz o mesmo, mas menos está escrito.
Neste caso, peguei o leafpad como exemplo; é por isso que o leaf aparece no grep
ps -e | grep leaf | awk '{print $1}' | xargs kill
lembranças
Ufa! Meu filho, tente executar "pgrep kat", que é "pgrep" para alguma coisa.
E para executar "man pgrep". E "man pidof", que às vezes "pidof" pode ajudá-lo.
E para executar «ps aux | grep [k] at ", que não retornará como resultado" o processo que ativamos para a filtragem "que você comenta, poupando assim seu trabalho.
Saudações!
Ah, e "pkill", que faz o que você está procurando. Por exemplo: "pkill kat".
Que interessante ... não sabia pgrep 🙂
Obrigado pela dica 😀
Obrigado a você e seus artigos.
A propósito, em https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ comentar sobre a técnica de usar comandos como «ps aux | grep [n] program_name ", eles explicam melhor do que eu lá.
Saudações!
Obrigado pelo link 😀
Isso é o legal de existir. DesdeLinux…não importa se você é usuário, editor ou administrador, todos nós sempre aprendemos coisas novas 🙂
Saudações e obrigado novamente amigo.
Muito obrigado a todos pelo seu tempo e dedicação, vale a pena visitar e ler este site várias vezes ao dia.
Obrigado novamente.
KZKG ^ Gaara é quase sempre o mesmo, quando se trata desse tipo de dicas, tem outra pessoa que faz o mesmo com um simples comando. Mas eu o parabenizo, ele está sempre contribuindo continuamente.
hehe sim… Eu sei fazer X osa e venho aqui compartilhar o método, mas aí eles dividem uma forma mais simples de conseguir a mesma coisa hahaha, mas com isso todos nós ganhamos, certo? 😀
Isso mesmo 0 /
Hahaha, você sempre segue o caminho mais complicado. 😀
HAHAHA sim, sempre pensei: «Se eu sei fazer da maneira difícil, então saberei como aprender a fazer da maneira simples sem problemas.»E… vice-versa não funciona da mesma forma hahaha.
O problema seria se tivermos dois processos com um nome semelhante.
Por exemplo, um processo de kate e outro processo de ... mmm ... digamos kater xD
Com esse comando, mataríamos os dois, certo?
Bem, sim, isso aconteceria 🙂
Pobre Kate. Eu uso o xkill no KDE, ele é lançado rapidamente com "ctrl + alt + esc" ou também com "ctrl + Esc" abra "Atividades do sistema" e faça graficamente. Agora este procedimento através do terminal deve ser aprendido, embora eu tenha um servidor home com debian estável e que não trava de jeito nenhum.
Ótimo! agora que estou fazendo o curso de sistemas operacionais e preciso realizar tarefas com o terminal, seu tutorial foi de grande ajuda! obrigado
Muito bem explicado, ótimo o blog que acabei de conhecer, aponto para os favoritos. Obrigado.
Bem, é bom, embora às vezes eles não possam ser mortos….
pkill -9
pkill -9 "nome do processo"
no comentário anterior coloquei «» mas não saiu xD
boa noite, tenho tempo de ler seu feed e hoje resolvi experimentar este comando ps ax | grep chrome | grep -v grep | awk '{print $ 1}' | xargs kill e recebo o seguinte erro de kill: não é possível localizar o processo "?" com a pouca experiência que tenho no bash resolvi fazer algumas modificações e no final fiquei com o ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs kill já que ps -A é usado para mostrar todos os processos de forma resumida e a segunda anomalia foi que ele me lançou o TTY «?» e funcionou para mim muito obrigado gostei muito do seu blog, saudações
Obrigada compa, você não imagina a quantidade de problemas que acabou de resolver para mim com este comando.
Saudações !!
OBRIGADO !!!!
Excelente postagem. Exatamente o que eu procurava e não sabia fazer, e a explicação era muito boa.
Saudações.