Matando Processo Filho se não houver resposta

0

Ambiente: Linux / Scripting: Bash

Estou consultando cerca de 100 registros do banco de dados e, para cada registro, estou executando o teste de SFTP / verifiquei em segundo plano usando performTestWrapper.

Basicamente, o que estou tentando alcançar é no final de um minuto, passar por um processo pendente que não foi concluído:

  • Emitir um sinal de kill on child
  • O Child captura o sinal de kill e faz o pós-processamento, como limpar o arquivo.

O objetivo é executar a verificação de SFTP em 100 servidores e falhar se não houver resposta ou sessão presa por mais de 1 minuto.

Problema que estou enfrentando:

  1. Não consigo extrair o PID da CRIANÇA fora do loop while. O escopo da variável termina no próprio loop.
  2. Como posso enviar um sinal para a chamada de função que é executada em segundo plano para finalizar e fazer um processamento posterior.

isql -S$APPQUERY -U$APPUSER -P$APPPWD -s"|" -w8192 <<EO_ISQL  | tail -n +3  |
set nocount on
select Col1, Col2, Col3 from TableName
go
EO_ISQL
while IFS="|" read dummy Id Col1 Col2 Col3
do
   performTestWrapper &
   export CHILDPID="$CHILDPID $!"
done
sleep 60
echo $CHILDPID # This is Blank 
    
por Mitesh 29.03.2018 / 21:37

0 respostas

Tags