不管是否有-f参数,最终程序都会进入 fuse_loop_mt 循环中,在helper.c的fuse_main_common函数中。
1. 有-f参数。这种情况下fuse_setup_common函数调用的fuse_daemonize函数会直接返回,然后回到 fuse_loop_mt 循环中。
2. 没有-f参数。这种情况下,fuse_daemonize会进行fork,父进程fork后就退出(表示shell前台结束),子进程称为init进程的子进程。之后,子进程将文件描述符0,1,2都重定义到/dev/null,然后返回到fuse_loop_mt。