在程序'progX'的开头有下面的代码是否有区别?
if(daemon(0, 0) == -1)
{
printf("daemon error: %s", strerror(errno));
}
Run Code Online (Sandbox Code Playgroud)
或通过以下命令运行'progX':progX&2>/dev/null 1>/dev/null 0>/dev/null
daemon() 做了几件事:
init通过分叉然后退出父母来重新使用该过程.查看ps列表,您将看到守护进程归PID 1所有.setsid()././dev/null.您的重定向处理最后一个操作,但不处理其余操作.