C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C:Exec / fork>停止进程大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用fork>创建很多子进程.执行程序.许多进程结束非常快(不到两分钟,甚至更早).

我的第一个问题是,我将产卵过程放在后台

./spawnbot > logging.txt
[CTRL+Z]
bg 1
disown

到现在为止还挺好.现在我看不到任何一个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>停止进程所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: