2009-06-24 8 views
31

C'è un modo per eliminare un avviso (codice di uscita 137) in perl? Sto eseguendo uno script Perl su linux all'interno di un altro script di shell. Questo script Perl viene chiuso con un codice di avviso e di uscita 137. Non sono riuscito a individuare il codice di uscita 137.Perché il mio script Perl termina con 137?

Qual è il modo migliore per evitare questo avviso? Ho provato "nessun avvertimento" nello script e ho anche un'uscita 0 alla fine del mio script Perl.

+1

dove viene la tua uscita sceneggiatura? Davvero vedi un avvertimento? –

+2

Potrebbe essere utile pubblicare il blocco rilevante del codice. – Telemachus

+0

Non sono sicuro di come capire dove esce lo script. Sembra fare il suo lavoro davvero bene (come il mio output è giusto) ma esce con 137. Faccio uno status $ echo per vedere il codice di uscita. –

risposta

57

137 = 128 + 9, il che significa che un altro processo ha inviato un segnale 9, che è SIGKILL. Cioè l'altro script uccide il tuo, è quello che sembra.

+0

Non proprio perché eseguire lo script indipendentemente sputa fuori 137. Grazie. –

+11

È anche possibile che si sia inviato il segnale. –

+2

È il processo di oomkiller che lo sta uccidendo, non l'altro script. – Christy

4

Sospetto che l'avviso di uscita sia stampato dalla shell che ha chiamato il programma perl, non dal programma perl stesso, quindi "nessun avviso" nel codice perl non ti aiuterà. il codice di uscita 137 indica che è stato ucciso con un segnale SIGKILL.

40

Ho appena eseguito lo stesso codice di uscita 137 all'avvio di uno script python. Si scopre essere il killer OOM che sta dando il via, mandando SIGKILL all'interprete python. Se è la stessa causa, puoi trovare oom msgs in/var/log/messages

+3

Wow, la tua risposta mi ha probabilmente risparmiato ore di tentativi di capire cosa stava succedendo, grazie! –

6

Ho ricevuto lo stesso codice di errore 137 da uno script ANT. Guardando a/var/log/messages, capisco che c'è un errore di memoria insufficiente.

Jun 21 07:33:30 myhost kernel: Out of memory: Kill process 52959 (java) score 164 or sacrifice child 
Jun 21 07:33:30 myhost kernel: Killed process 52959 (java) total-vm:709496kB, anon-rss:397016kB, file-rss:0kB