【发布时间】:2012-10-11 09:21:46
【问题描述】:
我想确保以下内容不会影响我的流程:
Solaris 程序大量写入标准输出(通过 C++ wcout 流)。输出用于跟踪,因此在测试和分析期间,程序员/测试人员可以轻松观察发生的情况。但该程序实际上是一个服务器进程,因此在生产版本中它将作为一个不附加控制台的恶魔运行,并将所有跟踪输出写入文件。
我假设对于没有控制台的程序,stdout 被重定向到 nul,在这种情况下,我想一切都很好。但是我想确保 stdout 输出没有在某处缓冲,这样在足够的运行时间之后我们可能会遇到内存或磁盘空间问题。
注意:我们不能将跟踪输出重定向到文件,因为这会变得太大。相反,我们自己的文件跟踪机制确保创建新文件并删除旧文件以始终保持一定数量的跟踪,而不是更多。
【问题讨论】:
-
您不能在启动时手动将守护程序的标准输出重定向到 /dev/null 吗?
-
我不对系统中启动守护进程的部分负责。而且我也不知道那部分到底是如何工作的。这个问题是要弄清楚我是否必须这样做,或者我是否可以保持原样。
-
嗯,你需要知道守护进程是如何启动的。如果不确定,那么你应该照顾它。
-
您可以尝试stackoverflow.com/questions/6583158/… 来检查它的附加位置。