The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Script di avvio "run processo con timer" zawmn83 Shell scripting e di programmazione 0 08-21-2008 10:57 AM
Come includere RETURN KEY con sfondo processo "&" nella Shell Script racbern Shell scripting e di programmazione 1 03-11-2008 07:30 AM
Q: La registrazione script di shell schermo output utilizzando "script" comando? lalfonso.gomez Shell scripting e di programmazione 4 01-18-2007 09:31 PM
N. utpmx ingresso: è necessario eseguire la voce "login" dal livello più basso "guscio" peterpan UNIX for Dummies Domande & Risposte 0 01-18-2006 04:15 AM
Il mio "pane e burro" Processo Keep Alive script Perl .... Neo Suggerimenti e Tutorial 0 01-08-2005 05:17 AM

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 10-21-2008
Squeakygoose Squeakygoose is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2008
Interventi: 14
Script di shell processo rimane dopo "l'uscita 1"

Ho uno script che esegue un oracolo di esportazione:


Codice:
<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

Se l'esportazione riesce quindi ho il messaggio e lo script termina con nessun processo in memoria. Tuttavia, se fallisce, lo script si ferma (per esempio non viene visualizzato "Esporta riuscito"), ma il processo rimane:


Codice:
> 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

Chiunque sa che cosa sta succedendo qui?
  #2 (permalink)  
Old 10-21-2008
wempy's Avatar
wempy wempy is offline
Utente Registrato
  
 

Iscriviti Data: giugno 2006
Ubicazione: Harpenden, Regno Unito
Interventi: 208
provare

Codice:
ps -ef |grep PID

per vedere se il processo di script ha bambini, questi magari tenendolo aperto, mentre si attende per fine.
Oh, PID di cui sopra è il risultato di un originale ps-ef che avete fatto.
  #3 (permalink)  
Old 10-21-2008
Squeakygoose Squeakygoose is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2008
Interventi: 14
No, niente:


Codice:
> 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
Utente Registrato
  
 

Iscriviti Data: gennaio 2008
Interventi: 14
ok, un po 'più di diagnosi:

Y bandiera sullo script è quello di indicare se la discarica dovrebbe essere compressi tramite tubo. l'esecuzione di script con: "/ u01/ct_scr/export.sh TAXTST COMPLETA N" esce bene.

Ecco il codice per $ 3 \u003d Y:

Codice:
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

Ho anche incluso una funzione di pulizia che si chiama la prima uscita 1:


Codice:
cleanup()
{
if [ ${compress:-N} = Y ]
then
        rm -f ${pipe_name}
fi
}

Il tubo di sfondo e gzip comando sono andato una volta lo script termina lo script ma forse non sa che e si blocca intorno?

Vorrei sapere se ho confuso le heck fuori di voi. Ho posto l'intero script, ma è kinda lungo ...
  #5 (permalink)  
Old 10-21-2008
Squeakygoose Squeakygoose is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2008
Interventi: 14
Confermato. il tubo di alimentazione alcuni manichino testo (con un implicito EOF) prima di rimuovere le cause che lo script per uscire correttamente:


Codice:
cleanup()
{
if [ ${compress:-N} = Y ]
then
        echo "fail" >> ${pipe_name}
        rm -f ${pipe_name}
fi
}

Presumibilmente la questione è venuta da gzip comando non restituire un codice di uscita allo script processo prima che scompare, mantenendo lo script processo aperto. Uccidere il tubo prima che alimenta il processo di gzip nulla sembra lasciare lo script processo nel limbo. Nutrire il testo è un manichino OK soluzione, ma mi lascia con l'estensione. Gz file dopo un fallimento.

Qualcuno sa come inviare il JUST EOF a un tubo? Sto sperando che questo farà sì che il processo di sfondo gzip per uscire in modo pulito, senza creare un file. Gz file.
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 10:46 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0