Kill gráfico com gdialog

Publicado por Marcelo 06/06/2009

[ Hits: 8.075 ]

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

Backup de algumas databases, Remotamente.

Script para adicionar bordas às imagens de uma pasta

Comando Executar Gerenciadores leves

Quantos delimitadores?

Personalizando o seu shell com bashrc_dahora


  

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