我的第一个问题是,我将产卵过程放在后台
./spawnbot > logging.txt[CTRL+Z]bg 1disown
到现在为止还挺好.现在我看不到任何一个spawnbot的消息,他们直接进入logging.txt.然而,每当一个新的孩子被创建,我再次看到所有关于该孩子的信息.我现在想要使用自己的管道启动每个孩子 – 有没有更好的方式没有孩子发布他们的输出消息遍布安慰?我应该把它重定向到/ dev / null还是用C中的一些标志呢?
其次,所有的孩子都不会真的被杀死.我在ps -ef中有很多进程.我该怎么办?我怎么d
解决方法 首先你的第二个问题!你的孩子留在’僵尸’模式,因为内核认为你可能还想从它们获取一个返回值.
如果您无意从子进程获取返回值,则应将父进程中的SIGCHLD信号处理程序设置为SIG_IGN,以使内核自动收到您的子进程.
signal(SIGCHLD,SIG_IGN);
第一个问题取决于你的实现.
但一般来说,在你fork()之后,你应该使用close()来关闭0和1的旧文件描述符,然后使用dup2()将它们设置为你想要的值.现在没有时间提供一个例子,但是希望这能推动你正确的方向..
总结以上是内存溢出为你收集整理的C:Exec / fork>停止进程全部内容,希望文章能够帮你解决C:Exec / fork>停止进程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)