shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Ajuda quanto ao uso do ps <arg> | grep [arg]


From: Sergio
Subject: Ajuda quanto ao uso do ps <arg> | grep [arg]
Date: Tue, 06 May 2008 10:55:02 -0000
User-agent: eGroups-EW/0.82

Pessoal, olá a todos. 

Segue parte do script que tenho e que falha, não por sintax, mas sim 
por eficiencia e exatidão no kill do processo. 

######################################################################
ARQ=$(ls UNIAO_GeraExpFull_Un01*) #DIRETORIO DE LOCK
 Definindo procedimentos para Abortar o script"
 LOG + "Analisando o Arquivo: ${ARQ}"
 wd_PID=`echo ${ARQ} | awk -F. '{print $3}'`
 LOG + "PID do Arquivo ${ARQ} e ${wd_PID}" 1
 wd_PROCESSO=`ps -ef | grep ${wd_PID} | grep -v grep | wc -l`
 LOG 2 "Finalizando os processos em ordem inversa, dos processos 
FILHOS ate chegar no processo PAI"
 for MATA_PROCESSO in $(ps -ef | grep ${wd_PID} | grep -v grep | awk -
F" " '{print $2}' | sort -r)
               do
                 gABORT="S"
                   kill -15 ${MATA_PROCESSO}
                 gABORT="N"
                 LOG + "Processo: ${MATA_PROCESSO} Encerrado"
               done


######################################################################
O que ocorre de errado de vez em quando é que ao capturar com ps -ef 
para popular a variavel wd_PROCESSO, ele pega outros pids que nao tem 
nada a ver com o processo em questao. Por exemplo, se o pid do 
processo for 58, com o comando em questão, alem do 58 ele pega o 
1058. 
Dai, ao tentar matar o processo na parte onde tem o for 
MATA_PROCESSO, ele falha... (ainda bem que falha) pois estaria 
tentando matar um processo que nao tem nada a ver... 

A pergunta é : como restringir de forma que o pid capturado pelo ps -
ef | grep seja mesmo o 58 e nao 1058 ?

Tentei restringir , fazendo com os os pids retornados seja os que o 
usuario que executou o script executou, de forma  que os pids seria 
pelo menos os do usuario que executa o script, mas mesmo assim fica 
falho o script. (ps -fu user).

Creio que seja uma coisa bem simples... 

Valeu...

SDS 

Sergio  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]