Kill gráfico com gdialog

Publicado por Marcelo 06/06/2009

[ Hits: 8.041 ]

Download xkill




Tendo como base o script do Rodrigo Moura Bittencourt, posto aqui um script que fiz onde
você seleciona o processo e o programa o finaliza.

As diferenças deste para o do Rodrigo é que este você seleciona somente um processo de
cada vez, e o finaliza. Outra diferença é que ele ordena a lista de processos de acordo
com o nome do processo, bem como faz a seleção automática do usuário que está logado.

Desculpem qualquer erro... sou apenas um iniciante...

  



Esconder código-fonte

#!/bin/bash
#Produzido por RODRIGO MOURA BITTENCOURT
#Email spy_rombit@yahoo.com.br
#Alterado por MARCELO ARAÚJO
#Email marcelonx@gmail.com
#Pergunta ao usuario se ele deseja continuar
#e guarda a reposta na variavel $resp
gdialog --yesno "Você deseja encerrar algum processo?" 25 30
resp=$?

if [ "$resp" = "1" ]
then
exit

else

USERNAME=`whoami`

#Lista os procesos e guarda em um arquivo chamado lista
ps -u $USERNAME >lista

#Ele trata este arquivo através do comando awk,
#ele apenas imprime na variavel a coluna 1 e 4
# acrescenta a palavra on na frente e ordena a lista

var=`cat lista | sort -k 3 |awk '{print $1 " " $4 " " "on" }'`

# Grava na variavel $pid o numero que o usuario selecionou.
   pid=$(gdialog --radiolist "teste" 0 0 0 `for i in $var;do echo " $i " ; done` 2>&1)
   if [ $? -eq 0 ]
   then

#Mata o processo selecionado
kill -9 $pid
      
   gdialog --yesno "Deseja continuar?" 30 30 2>&1
   respo=$?
   if [ "$resp" = "0" ]
   then      
rm lista
sh xkill
else
exit
fi
fi
fi

Scripts recomendados

Listar bolsas disponíveis no Senac

Script para copiar CD.

Screenserver no modo texto - versão 1

Script para rotacionar logs dos sites no Apache

Script Backup ultimo arquivo criado em um diretorio feito TAR direto para DAT


  

Comentários
[1] Comentário enviado por Smithux em 06/06/2009 - 14:42h

Marcelo ficou bem legal! ;)
Agora, aqui vai umas pequenas modificações que fiz que fica mais interessante a execução do programa.
Ah! E aconselho que você dê uma olhadinha no Xdialog e também no Zenity, são bem mais dinâmicos e mais interessantes que o Gdialog.
Abraços!

#!/bin/sh

# Arquivo que guardará a lista de processos
LISTA="/tmp/lista-procs"

# Criando uma função para executar os processos necessários para matar um processo...
function gKill(){
USERNAME=`whoami`

ps -u $USERNAME > $LISTA

PROCS=`cat $LISTA | sort -k 3 | awk '{print $1 " " $4 " " "on" }'`
PID=$(gdialog --radiolist "Processos" 0 0 0 `for i in $PROCS;do echo " $i " ; done` 2>&1)

if [ $? -eq 0 ]; then
kill -9 $PID

gdialog --yesno "Deseja continuar?" 30 30 2>&1
resp=$?

if [ $resp -eq 0 ]; then
rm $LISTA
gKill # Aqui, simplesmente chamamos a função novamente, não sendo necessário reexecutar programa.
else
rm $LISTA
exit
fi
else
rm $LISTA
exit
fi
}

# Aqui inicia o programa
gdialog --yesno "Você deseja encerrar algum processo?" 25 30
resp=$?

if [ $resp -eq 1 ]; then
exit
fi

# Se a resposta acima não for '1', então ele executará o que estiver dentro da função que criada
# Não é necessário utilizar o 'else' nesse caso
gKill

[2] Comentário enviado por marcelonx em 06/06/2009 - 14:53h

realmente, ficou muito melhor... ontem eu estava tentando colocar como função para não ter que reexecutar o programa, mas acabei não encontrando o que procurava, agora já comecei a sacar como funciona... hehehe


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts