如何将中止进程的详细信息捕获到日志文件中

守护进程在Debian中启动并运行,直到它随机崩溃。 我发现,如果进程在前台运行,会显示一个断言,因此有时会中止:

/usr/include/boost/smart_ptr/shared_ptr.hpp:424:T * boost :: shared_ptr :: operator – >()const [with T = libcage :: dht :: query]:Assertion`px!= 0'失败。 中止

exitcode是134,但如果进程在后台运行,如何将更详细的错误描述(可能有许多不同)保存到日志文件中供以后分析?

“2> / log / mylogfile”什么都不写,“> / log / mylogfile”正在写入忽略中止消息的过程输出。 另外在“dmesg”或“kern.log”中没有任何内容。

你可以使用strace来查看错误。 它将logging所使用的系统调用,信号和返回值。

只需strace -v -s 256 -D -o /tmp/daemonlog daemonapp ,你可以看到执行细节。

-v:打印环境

-sstring大小:256字节

-D作为独立的granchild运行strace

-o日志文件

如果守护进程使用“bash脚本”,请在脚本的开头添加“set -x”,然后再次启动进程并查看