Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: slack+flux
Por U-Neeks
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Cássio Silva Oliveira em 01/02/2008    [ 8319 hits ]

Login: cassioso, 13238 pontos

Homepage: http://www.cassiooliveira.com   


Descrição

Script utilizado para matar um processo específico, identificando seu PID a partir de seu nome.


Utiliza um arquivo temporário para armazenar o PID.

[ Download: process_kill_file.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/bin/sh
#Autor: Cássio Silva Oliveira - cassioso
# Janeiro 2008

#nome do processo
  PROCESS_NAME=WatchDog
#pasta onde o arquivo com a informação do PID do processo ficará armazenado temporariamente
  TEMP_DIR=/home/cassioso/tmp
  echo 'Parando Processo $PROCESS_NAME'
#cria o arquivo, captura o PID do processo e salva no arquivo
  PID_FILE=processtokill.pid
  ps -U root -o "%p : %a"| grep $PROCESS_NAME | grep java | awk '{ print $1 }' > $TEMP_DIR/$PID_FILE
#permite total manipulação do arquivo
  chmod 777 $TEMP_DIR/$PID_FILE
#recupera o PID do processo no arquivo
  PROCESS=`cat $TEMP_DIR/$PID_FILE`
  echo Process = $PROCESS
#mata o processo
  kill -9 $PROCESS
#remove o arquivo temporario
  rm -f $TEMP_DIR/$PID_FILE

Scripts recomendados
   Script Linux recomendado Script para renomear arquivos
   Script Linux recomendado Script Para Ajustar o Intevalo de Legendas 2
   Script Linux recomendado Firewall
   Script Linux recomendado relatorio squid
   Script Linux recomendado Script Firewall - Regras do Iptables

Comentários
[1] Comentário enviado por edirlf em 01/02/2008 - 07:52h:

Não seria mais fácil um:

$killall -u usuário programa

falows cara.

[2] Comentário enviado por elgio em 04/02/2008 - 22:57h:

Primeiro script em shell?

Como disse o edirlf, já se tem o killall que faz isto.
Ainda, no teu script não entendi porque tu usou arquivo temporário. Variáveis seriam muito melhores. Até porque ele NÃO FUNCIONA se não existir o diretório.

E porque o grep java?

Veja, este teu script soluciona apenas um problema teu, não um problema de forma genérica.

Mesmo existindo o killall:

kill -9 `ps auxc|grep PROGRAMA | sed 's/^[^ ]\+ \+\([0-9]\+\) .\+$/\1/'`

Uma linha apenas!!!!

[3] Comentário enviado por cassioso em 07/10/2008 - 11:25h:

Olá,


"...Variáveis seriam muito melhores..."

Como faria para jogar a saída de um comando para uma variável?

[4] Comentário enviado por Miojo em 13/10/2009 - 18:36h:

VARIAVEL=`comando`

[5] Comentário enviado por andrecanhadas em 19/05/2011 - 16:23h:

Complementando o script do elgio e respondendo ao Cassiano. Que tal assim que funciona para varios:
#!/bin/sh
# inicio
echo "Digite o nome do processo:" ; read processo
kill -9 `ps auxc|grep $processo | sed 's/^[^ ]\+ \+\([0-9]\+\) .\+$/\1/'`
# fim
Salve em /usr/local/bin ou usr/bin
de permissão para executar chmod a+x nome_arquivo


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.