Matando um processo [RESOLVIDO]

1. Matando um processo [RESOLVIDO]

José Kaio da Silva Gomes
jose-linux

(usa Debian)

Enviado em 20/12/2021 - 16:38h

Olá, pessoal!
Estou tentando criar um script cujo a sua função é matar um processo que está em execução, porém não consigo executá-lo.
Agradeço a quem puder me ajudar!

Segue o script:

#!/bin/bash

inp=$( zenity --form --question="Qual processo você deseja encerrar" \
--add-entry="PID")
if [ $? == 0 ]; then
if [ -n "$(ps aux | grep $inp | grep -v grep) " ]; then
kill $inp
zenity --info="Seu processo foi encerrado!"
fi
else
zenity --info="Esse processo não existe!"
fi


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 21/12/2021 - 19:40h


jose-linux escreveu:

Olá, Marcelo!
Eu tentei fazer desta forma que você informou,
porém ao inserir o PID, o processo não é eliminado e a mensagem não é exibida na tela.

Segue o script:

#!/bin/bash

pro=$(zenity --forms --text="Qual processo você deseja encerrar?" \
--add-entry="PID")
if [ $? == 0 ]; then
if [ "$?" -eq 0 -a -n "$PID" ]; then
ps aux | grep -Eq "^$USER[]+${PID}" && { echo "Encerrar" "${inp}"; kill "${inp}"; } || echo "Não existe, ou, você não é o dono!"
fi
fi

----------------------------------------------------------------------------------------------------------------
Boa tarde Jose,
Meu exemplo foi genérico, era para você adaptar no seu script.....

Erros detectados:
Não é necessário testar o "Exit Code", duas vezes.....

Atribuiu valor para a var "pro".
Checa se a var "PID" é "não nula".
Filtra usando a var PID.
[] está errado no grep, tem um espaço, "[ ]".
e mata o processo usando a var "inp"!!!!
------------------------------------------------------------------------------------------------------
Segue o Script pronto:
#!/bin/bash
printf '\x1bc';
PID=$(zenity --forms --text="Qual processo você deseja encerrar?" --add-entry="PID" 2>/dev/null);
if [ "$?" -eq 0 -a -n "${PID}" ]; then
ps aux|grep -Eq "^${USER}[ ]+${PID}" && { echo "Encerrar \"${PID}\""; kill ${PID}; } || echo "${PID} não existe, ou, você não é o dono!"
else
echo "Clicou Cancelar/Fechou Janela";
fi


______________________________________________________________________
Importante:
Se te AJUDEI, me AJUDE,
MARCANDO a MELHOR RESPOSTA.

______________________________________________________________________
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________


3. Re: Matando um processo [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/12/2021 - 20:44h


jose-linux escreveu:

Olá, pessoal!
Estou tentando criar um script cujo a sua função é matar um processo que está em execução, porém não consigo executá-lo.
Agradeço a quem puder me ajudar!

Segue o script:

#!/bin/bash

inp=$( zenity --form --question="Qual processo você deseja encerrar" --add-entry="PID")
if [ $? == 0 ]; then
if [ -n "$(ps aux | grep $inp | grep -v grep) " ]; then
kill $inp
zenity --info="Seu processo foi encerrado!"
fi
else
zenity --info="Esse processo não existe!"
fi

Boa tarde Novamente......
Faça o "ZENITY" funcionar.....
1º ERRO
Esta opção não está disponível. Use --help para ver todas as opções disponíveis.

Após a correção do erro 1:
Duas ou mais opções de diálogo especificadas
Decida: ou "--forms" ou "--question"
>forms<, com S

Após a correção do erro 2:
Quanto aos condicionais....

#Se exit Code = 0 e PID não é nulo, faz a busca....
if [ "$?" -eq 0 -a -n "$PID" ];then
#Verifica se o processo existe e se o usuário "$USER", é o "dono" do mesmo:
ps aux|grep -Eq "^$USER[ ]+${PID}" && { echo "Encerrar ${inp}";kill ${inp};} || echo "Não existe, ou, vc não é o dono"
else
echo "Pressionou Cancelar, X ou Não preencheu o campo"
fi
----------------------------------------------------------------------------------------------------------------
Quanto a pergunta feita por e-mail,
É possível usar, a saída formatada pelo awk,
na parte de "Visualizar processos"....
Para matar o processo, é complicado, pois, não tem o PID.
______________________________________________________________________
Importante:
Se te AJUDEI, me AJUDE,
MARCANDO a MELHOR RESPOSTA.

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



4. Re: Matando um processo [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 20/12/2021 - 20:56h


Lembrando que pode haver mais de um processo com mesmo nome, então pode ser interessante usar killall em vez de kill


5. Re: Matando um processo

José Kaio da Silva Gomes
jose-linux

(usa Debian)

Enviado em 21/12/2021 - 17:47h

Olá, Marcelo!
Eu tentei fazer desta forma que você informou, porém ao inserir o PID, o processo não é eliminado e a mensagem não é exibida na tela.

Segue o script:

#!/bin/bash

pro=$(zenity --forms --text="Qual processo você deseja encerrar?" \
--add-entry="PID")
if [ $? == 0 ]; then
if [ "$?" -eq 0 -a -n "$PID" ]; then
ps aux | grep -Eq "^$USER[]+${PID}" && { echo "Encerrar" "${inp}"; kill "${inp}"; } || echo "Não existe, ou, você não é o dono!"
fi
fi






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts