我用C++编写了一个Linux守护进程。代码大致如下:
int main(int argc, char** argv)
{
daemon(1, 0); // Daemonize itself, retaining the current working directory and redirecting stdin, stdout and stderr to /dev/null.
// My program logic goes here
}
问题是,我的程序逻辑偶尔会抛出异常。我该如何捕获这些异常,以便我知道哪里出了问题?
我知道对于一个普通的控制台应用程序,未捕获的异常将被转储到控制台。在我的情况下,在调用daemon(1,0)之后,控制台不再可访问。
在Windows上,任何未捕获的异常都将被操作系统保存,并可以通过计算机管理中的事件查看器查看。Linux上是否有类似的机制?
/dev/null
,并在守护进程停止后检查该文件。 - Matthieu M.