检查 stdout 或 stderr

发布于 2024-08-22 22:53:41 字数 138 浏览 8 评论 0原文

我在 shell 脚本中使用的二进制文件之一导致分段错误(返回值:139),

尽管我将 stdout 和 stderr 重定向到日志文件,但当我正在运行 shell 脚本。

是否可以将此消息从 Segfault 重定向到日志文件?

One of the binaries which I am using in my shell script is causing a segmentation fault (RETURN VALUE: 139)

And even though, I am redirecting both stdout and stderr to a logfile, the Segmentation Fault error messages is displayed in the terminal when I am running the shell script.

Is it possible to redirect this message from Segfault to a logfile ??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

゛清羽墨安 2024-08-29 22:53:41

您看到的分段错误消息是由运行程序的 shell 打印的。此行为因 shell 而异,因此您可以尝试一些操作(如果您坚持将分段错误消息从 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

The Segmentation Fault message you see is printed by the shell that is running your program. This behavior varies from shell to shell, so a few things you could try (if you insist on getting the segmentation fault message into your logs from shell-redirects).

# 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
倾其所爱 2024-08-29 22:53:41

好吧,我正在回答我自己的问题..:)
我在这里找到了答案
如何在 Fortran 90 程序中抑制由于 SIGSEGV 或 SIGFPE 导致的输出?

技巧是

`exec 2> filename`  

在 shell 脚本中添加。

这会将所有消息从 shell 重定向到日志文件

Well, I am answering my own question.. :)
I found the answer here
How can I suppress the output due to a SIGSEGV or a SIGFPE in a Fortran 90 program?

The trick is to add

`exec 2> filename`  

in the shell script.

This will redirect all the messages from the shell to a log file

狂之美人 2024-08-29 22:53:41

尝试

./program &> logfile

这里有各种关于 I/O 重定向的示例, 你可以看看

这个讨论 还有

try

./program &> logfile

there are various exampls on I/O redirection here, have a look

You can take a look at this discussion as well

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文