不管是unix环境高级编程还是网络上都说创建daemon的步骤是:
1. fork
2. setsid创建新session
3. 父进程exit
这样子进程就能脱离terminal了.
这样子确实没错, 我之前以为这是为了避免子进程被强制退出, 所以才要脱离terminal和父进程.
但是在实验的时候发现, 没有setsid, 仅仅fork一个子进程并让子进程无限循环, 父进程fork之后exit, 子进程并没有随之结束. 仍然在运行. 同样我在终端输入exit命令之后, 子进程仍然还在运行. 也就是说子进程并不会被强制退出, 那还要创建新的session干嘛?