The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Identificeren en te groeperen OS processen en APP processen wilsonee SUN Solaris 2 09-30-2008 09:26
Toezicht Processen - Killing hing processen ukndoit UNIX for Advanced & Expert Gebruikers 4 01-17-2008 04:30
FTP Bestanden volgorde harim UNIX for Advanced & Expert Gebruikers 1 10-31-2007 10:54
lezen of zoeken op het object in een bestand sequentieel positie door het gebruik van Unix shell script? lok UNIX voor Dummies Questions & Answers 6 07-12-2006 06:53
processen master_6ez Programmeren en Shell Scripting 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-13-2005
993 993 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2005
Posten: 2
Uitvoeren Processen volgorde

Ik heb geschreven twee shell scripts waar script Een script oproepen B, het passeren van twee parameters.

Script B duurt ongeveer een minuut te voltooien (laden en verwerken van gegevens).

Bij het uitvoeren van script B eenmaal uit script A, alles werkt ok. Echter, bij het uitvoeren van script B meer dan eens uit script A, dingen beginnen te mess up:

bijvoorbeeld met Script A in de onderstaande indeling, de tweede termijn begint voordat de eerste termijn is afgelopen.

ScriptB Param1A Param2A
ScriptB Param1B Param2B

Kan iemand adviseren hoe kan ik een controle om te zien of script B is voltooid voordat u begint het weer met nieuwe parameters?

Voor info Ik gebruik HP / UX 11.

Ik ben nieuw voor Unix en nieuwe aan dit forum, dus bedankt voor uw hulp op voorhand.
  #2 (permalink)  
Old 04-13-2005
google's Avatar
google google is offline Forum Advisor  
Moderator
  
 

Join Date: juli 2002
Locatie: Atlanta
Posts: 740
Gebruik een lock-bestand dat wordt gegenereerd wanneer het eerste exemplaar van het script wordt uitgevoerd. Het tweede script zal kijken naar de aanwezigheid van de lock-bestand. Indien aanwezig, de tweede script kon wachten (voor een bepaalde periode) of kan verlaten. Na de eerste script klaar is, het zou natuurlijk opruimen (verwijder) de lock-bestand.
Ik had een tijdje terug functie voor het maken van een lock-bestand op basis van het proces-nummer van het reservoir. De functie heeft twee argumenten, een voor de naam van het logbestand en de andere is $ $. Het script maakt een lock-bestand in de / tmp directory. Dit bestand bevat de proces-ID van de shell die het heeft aangemaakt. Als u probeert om het script, terwijl een ander geval werd uitgevoerd, deze functie wordt voorkomen dat het tweede exemplaar uit draait. Werkt goed voor mij. Voel je vrij om te gebruiken als je daarvoor kiezen.


Code:
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
}

Laatst gewijzigd door Google, op 04.13.2005 10:59..
  #3 (permalink)  
Old 04-14-2005
993 993 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2005
Posten: 2
Thanks a lot Google.

Dat werkt prima.
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 05:10 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0