The UNIX and Linux Forums  

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
Opstartscript "lopen met timer" zawmn83 Programmeren en Shell Scripting 0 08-21-2008 10:57
Hoe te omvatten RETURN toets met Achtergrond proces "&" in de shell script racbern Programmeren en Shell Scripting 1 03-11-2008 07:30
Q: Opnemen shell script scherm uitgang met "script" commando? lalfonso.gomez Programmeren en Shell Scripting 4 01-18-2007 09:31 PM
Nr. utpmx item: u moet exec "inloggen" uit laagste niveau 'shell' peterpan UNIX voor Dummies Questions & Answers 0 01-18-2006 04:15
Mijn "brood en boter" Process Keep Alive Perl Script .... Neo Tips en Tutorials 0 01-08-2005 05:17

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 10-21-2008
Squeakygoose Squeakygoose is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2008
Posts: 14
Shell script blijft na "afrit 1"

Ik heb een script dat voert een orakel uitvoer:

Code:
<snip>
if [ ${exp_type} = FULL ]
then
        exp / full=y file=${exp_file} log=${exp_log} direct=y feedback=1000000 STATISTICS=NONE buffer=20000000
else
        exp / full=n owner=${schema_name} file=${exp_file} log=${exp_log} direct=y feedback=1000000 STATISTICS=NONE buffer=20000000
fi

if [ $? -ne 0 ]
then
        echo "Export command failed"
        exit 1
fi
echo "Export command succeeded"
exit 0
Als de uitvoer slaagt dan krijg ik het bericht en het script eindigt zonder proces in het geheugen. Echter, indien het niet lukt, het script stopt (dus niet van elkaar "Export Geslaagd"), maar het proces blijft:

Code:
> ps -ef|grep export
oracle   23241     1  0 10:04 pts/1    00:00:00 /bin/bash /u01/ct_scr/export.sh TAXTST FULL Y
Iedereen weet wat er gebeurt hier?
  #2 (permalink)  
Old 10-21-2008
wempy's Avatar
wempy wempy is offline
Geregistreerde gebruiker
  
 

Join Date: Jun 2006
Locatie: Harpenden, UK
Posts: 208
proberen
Code:
ps -ef |grep PID
om te zien of het script heeft geen kinderen, die misschien houd deze open, terwijl hij wacht tot ze klaar is.
Oh, PID hierboven is het resultaat van de oorspronkelijke ps-ef dat u deed.
  #3 (permalink)  
Old 10-21-2008
Squeakygoose Squeakygoose is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2008
Posts: 14
Nee, niets:

Code:
> ps -ef|grep 23241
oracle   23241     1  0 10:04 pts/1    00:00:00 /bin/bash /u01/ct_scr/export.sh TAXTST FULL Y
oracle   24421  9040  0 10:22 pts/1    00:00:00 grep 23241
  #4 (permalink)  
Old 10-21-2008
Squeakygoose Squeakygoose is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2008
Posts: 14
ok, een beetje meer diagnose:

De Y-vlag op het script is om aan te geven of het dumpbestand worden gecomprimeerd via pijp. het uitvoeren van het script met: "/ u01/ct_scr/export.sh TAXTST VOL N" uitgangen prima.

Hier is de code voor $ 3 \u003d Y:
Code:
if [ ${compress} = Y ]
then

        pipe_name=${exp_loc}/compress_${ORACLE_SID}_${schema_name:-FULL}_${today}_p

        # remove any existing pipe
        rm -f ${pipe_name}

        # Make a new pipe
        /bin/mknod ${pipe_name} p

        # initiate compression process on the new pipe to run in the background
        gzip -c < ${pipe_name} > ${exp_file}.gz &

        # Re-direct export output to the pipe
        exp_file=${pipe_name}

fi
Ik heb ook een cleanup functie die wordt aangeroepen voordat de afrit 1:

Code:
cleanup()
{
if [ ${compress:-N} = Y ]
then
        rm -f ${pipe_name}
fi
}
De pijp en achtergrond gzip commando zijn verdwenen zodra het script eindigt, maar misschien is het script niet weet dat en blijft hangen rond?

Laat me weten als ik heb verward the heck out van je. Ik wil na het hele script, maar het is een beetje lang ...
  #5 (permalink)  
Old 10-21-2008
Squeakygoose Squeakygoose is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2008
Posts: 14
Bevestigd. voederen van de pijp sommige dummy-tekst (met een impliciete EOF) voordat u deze oorzaken het script te verlaten correct:

Code:
cleanup()
{
if [ ${compress:-N} = Y ]
then
        echo "fail" >> ${pipe_name}
        rm -f ${pipe_name}
fi
}
Vermoedelijk wordt het probleem vanuit het gzip commando niet retour een exit-code aan het script proces voordat het verdwijnt, houden het script proces geopend. Het doden van de buis voordat het voedt de gzip proces iets lijkt te laat het script in het ongewisse. Voederen van de dummy-tekst is een OK-methode, maar laat me met de extensie. Gz-bestand na een storing.

Does anyone know how te sturen GEWOONWEG het EOF aan een pijp? Ik hoop dat dit zal leiden tot de achtergrond gzip proces te verlaten zonder een zuiver. Gz-bestand.
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 08:36.


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