The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Identificação e agrupamento OS processos e processos APP wilsonee Sun Solaris 2 09-30-2008 10:26
Acompanhamento Processos - Killing pendurámos processos ukndoit UNIX & avançada para usuários experientes 4 01-17-2008 04:30
FTP Arquivos seqüencialmente harim UNIX & avançada para usuários experientes 1 10-31-2007 10:54
ler ou pesquisar o item em um arquivo sequencial pela posição utilizando unix shell script? lok UNIX para Dummies Perguntas & Respostas 6 07-12-2006 07:53
processos master_6ez Programação Shell Script e 3 11-24-2004 09:48

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-13-2005
993 993 is offline
Usuário
  
 

Join Date: Apr 2005
Posts: 2
Executar Processos seqüencialmente

Eu escrevi duas scripts shell script que chama um script B, passando dois parâmetros.

Script B leva cerca de um minuto para completar (carregamento e processamento de dados).

Ao executar o script B depois de um script, tudo funciona ok. No entanto, ao executar o script B mais de uma vez a partir de um script, as coisas começam a asneira:

por exemplo, com um script no formato abaixo, a segunda passagem começa antes da primeira execução tenha terminado.

ScriptB Param1A Param2A
ScriptB Param1B Param2B

Alguém pode aconselhar como posso introduzir uma verificação para ver se script B foi concluída antes de iniciá-lo novamente com os novos parâmetros?

Para mais informações estou usando hp / ux 11.

Eu sou novo em Unix e de novo a este fórum, por isso obrigado pela vossa ajuda antecipadamente.
  #2 (permalink)  
Old 04-13-2005
google's Avatar
google google is offline Forum Advisor  
Moderador
  
 

Join Date: Jul 2002
Localização: Atlanta
Lugares: 740
Utilizar um bloqueio arquivo que é gerado quando a primeira instância do script é executado. O segundo script vai olhar para a presença de bloqueio do arquivo. Se existir, o segundo script poderia esperar (para um determinado período de tempo) ou ele poderia sair. Após o primeiro script é feito, teria naturalmente limpar (remover) o bloqueio arquivo.
Eu tinha criado algum tempo atrás uma função para criar um arquivo baseado em bloquear o processo número do reservatório. A função tem dois argumentos, um para o nome do arquivo de log e as outras é $ $. O script cria um bloqueio arquivo na directoria / tmp. Este arquivo possui o ID do processo do shell que ele criou. Se você tentar executar o script enquanto outro caso, foi a correr, esta função irá impedir o funcionamento de segunda instância. Funciona bem para mim. Sinta-se livre para usar, se assim o desejarem.


Código:
CreateLockFile () {

unset PROCESS_ID
unset ID
LFILE=${TEMP_PATH}/${1}_${TODAYS_DATE}.LCK
ID=$2

if [ -r ${LFILE} ]
 then
    OPID=`cat ${LFILE}` 2> /dev/null
    if [ -z ${OPID} -eq 0 ] #Make Sure OPID contains a value
     then
	 exit ${FAILURE} "ERROR-APP-->: `basename ${LFILE}` exists but contains no Process ID" | tee -a ${INLOG}
     else
        PROCESS_ID=`ps -p ${OPID} | grep ADD-SCRIPT-NAME-HERE | awk -F" " '{print $1}'  2> /dev/null`

        if [ ${PROCESS_ID} ]  #Lock File is there, check if process is actually running
         then
           echo "WARNING-->: ${1} Script Is Currently Running [PID=${OPID}], Exiting. ${DATE_TIME}" | tee -a ${INLOG}
           exit ${SUCCESS}
        else
	  echo "INFO-->: Old Lock File with PID= [ ${OPID} ] Exists But Process Is Not Running. " >> ${INLOG}
	  echo "INFO-->: Overwriting Old PID with New PID Value of [ ${ID} ] " >> ${INLOG}
          echo "$ID" > ${LFILE}
        fi 
     fi
else
  echo "$ID" > ${LFILE}

    if [ $? -ne 0 ]
      then 
        exit ${FAILURE} "ERROR-APP-->: Could Not Create Lock File - Exiting " | tee -a ${INLOG}
    fi
fi
}

Última edição por google; em 04/13/2005 11:59..
  #3 (permalink)  
Old 04-14-2005
993 993 is offline
Usuário
  
 

Join Date: Apr 2005
Posts: 2
Graças um lote do Google.

Isso funciona muito bem.
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 08:46.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0