基本概念
实现方法
=============================================================================== * 使用 setsid 设置为新会话的领头进程 * 因为 setsid 要求调用进程不是会话的领头进程时才有效. * 因此, 首先可用 fork 派生, 并结束父进程. * 之后调用 setsid, 子进程成为新会话的领头进程, 从而与原有会话, 进程组, tty 脱离. * 但是, 为避免作为新会话领头进程的子进程在打开一个终端设备时, 拥有一个控制终端. * 再次派生, 并结束父进程, 可让子进程成为非会话领头进程. --------------------------------------- if (fork ()) exit (0); setsid (); if (fork ()) exit (0); ===============================================================================