[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Derrubar Processos
From: |
José Maria de Oliveira - Depto. Informática |
Subject: |
Re: [shell-script] Derrubar Processos |
Date: |
Thu, 7 Mar 2002 16:12:23 -0300 |
Julio deu certo... Eh exatamente isso que precisava...
Obrigado...
[]s,
----- Original Message -----
From: Julio Cezar Neves - DISB.O
To: address@hidden
Sent: Thursday, March 07, 2002 11:32 AM
Subject: RES: [shell-script] Derrubar Processos
Olá José Maria,
vou te passar a sintaxe e execução sob o SVR4. Ambas costumam variar
dependendo do sabor uni/linux que vc usa.
Prompt>ps -u henrique
PID TTY TIME COMD
4199 pts/4 0:00 ksh
8357 pts/4 0:01 prareg.s
Para pegar o PID dos processos, eu vou trocar (tr) os blocos de espaços em
branco por somente um espaço e pegar somente o segundo campo cujo separador
é branco (cut).
Prompt>ps -u henrique | tr -s " " " " | cut -f2 -d" "
PID
4199
8357
Para vc entender o uso do tr -s veja só o exemplo abaixo:
Prompt>ps -u henrique | tr -s " " ":"
:PID:TTY:TIME:COMD
:4199:pts/4:0:00:ksh
:8357:pts/4:0:01:prareg.s
Como vc viu ele trocou blocos de espaços por dois-pontos, e o que nos
interessava era o segundo pedaço.
Voltando à vaca fria, na execução daquela linha de comando ficamos com uma
indesejável palavra "PID" encabeçando a relação. Vamos usar o grep com a
opão -v para capá-la:
Prompt>ps -u henrique | tr -s " " " " | cut -f2 -d" " | grep -v PID
4199
8357
Agora sim! Agora basta passar estes PIDs dos processos do henrique para o
cmd kill:
Prompt>ps -u henrique | tr -s " " " " | cut -f2 -d" " | grep -v PID | xargs
kill/bin/sh: kill 4199: permission denied
/bin/sh: kill 8357: permission denied
Ufa! Ainda bem que eu não estava logado como root, senão o Henrique ia ficar
uma fera comigo!!! :^).
A saída da linha acima poderia ser + limpa se vc matasse somente o shell do
usuário. Como todos os outros processos deste usuário são filhos do seu
shell, matando o pai os outros, normalmente, morreriam. Eu disse + limpa, pq
a linha pode matar primeiro o pai e qdo for matar os filhos, por eles não
existirem mais, dar um erro. Uma marreta para não aparecer o erro seria:
Prompt>ps -u henrique | tr -s " " " " | cut -f2 -d" " | grep -v PID | xargs
kill 2> /dev/null
[ ]s,
Julio Cezar Neves
Em tempo: se vc precisar executar esta linha de comandos constantemente,
"aliase-a" (gostou dessa? Acabei de inventar :º) no seu .profile (ou
bash_profile) substituindo henrique por $1 e chame-a passando o username do
usuário que vc deseja premiar.
-----Mensagem original-----
De: José Maria de Oliveira - Depto. Informática
[mailto:address@hidden]
Enviada em: quinta-feira, 7 de março de 2002 08:15
Para: address@hidden
Assunto: [shell-script] Derrubar Processos
Bom Dia pessoal...
Alguem poderia me passar como faco para derrubar todos os processos de um
determinado usuario ????
Obrigado por enquanto...
[]s,
[As partes desta mensagem que não continham texto foram removidas]
Sair da lista: address@hidden
Banco Dados: http://www.egroups.com/group/shell-script
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
Sair da lista: address@hidden
Banco Dados: http://www.egroups.com/group/shell-script
Seu uso do Yahoo! Grupos é sujeito aos Termos do Serviço Yahoo!.
[As partes desta mensagem que não continham texto foram removidas]