我在daemonize程序中遇到问题。问题是关闭所有打开的描述符后,我需要重新打开stdout文件来打印消息。
我有一种方法。但这不起作用。
方法是使用dup复制stdout描述符并重新打开它。但是deamonize函数被称为关闭所有文件描述符。因此,该重复文件描述符也已关闭。
任何人都可以帮助我这样做。
答案 0 :(得分:1)
如果使用daemon()
守护进程,则可以指定noclose
以防止这些文件描述符被关闭:
daemon(0, 1);
但你应该在手工检查后关闭这些,否则你的终端可能会搞砸了。