2010-02-24 9 views
2

L'un des binaires que je me sers dans mon script shell est à l'origine d'une erreur de segmentation (VALEUR DE RETOUR: 139)Vérifier stdout ou stderr

Et même si, je suis Rediriger à la fois stdout et stderr à un fichier journal, les messages d'erreur Segmentation Fault s'affichent dans le terminal lorsque j'exécute le script shell.

Est-il possible de rediriger ce message de Segfault vers un fichier journal?

Répondre

0

essayer

./program &> logfile 

il y a plusieurs exampls sur la redirection des E/S here, consultez

Vous pouvez jeter un oeil à ce discussion ainsi

+0

Eh bien, il ne fonctionnera pas ddid, voici mon code qui est à l'origine problème: « $ DECODEUR » -si $ fichier_entrée -De $ output_file >> $ log_file 2> & 1 Voici la sortie en cas de problème de Segfault: ./decode.sh: ligne 292: 15475 Défaut de segmentation "$ DECODER" $ Entrée IF .. – Kiran

+0

http://stackoverflow.com/questions/988279/bash-redirection-de-stdoutput-et-stderror-does-not-catch-all-output Je regarde une approche similaire .. mais dans un script shell – Kiran

+0

vous pouvez voir http://unix.derkeiler.com/Newsgroups/comp.unix.programmer/2004-12/0135.html pour une discussion – ghostdog74

2

Le message Segmentation fault vous voyez est imprimé par le shell qui exécute votre programme. Ce comportement varie d'un shell à l'autre, donc quelques choses que vous pourriez essayer (si vous insistez pour obtenir le message d'erreur de segmentation dans vos journaux à partir de redirections de shell).

# Have sh invoke your program, and redirect output from both sh and your program into logfile 
sh -c "program arguments more arguments" >logfile 2>&1 
# Force bash to not just exec your program (/bin/true part), and redirect output 
# from both bash and your program into logfile 
bash -c "/bin/true; program arguments more arguments" >logfile 2>&1 
+0

Simple et élégant. +1 –

Questions connexes