首页 \ 问答 \ 杀死一个分叉的孩子(Kill a Forked Child)

杀死一个分叉的孩子(Kill a Forked Child)

我正在调用fork来创建一个新进程。 我如何从父进程中删除它?


I am calling fork to create a new process. How can I kill it from the father process?


原文:https://stackoverflow.com/questions/8223022
更新时间:2022-12-04 18:12

最满意答案

你可以用kill

pid从fork返回到父级。


You can use kill.

The pid is returned to the parent from fork.

相关问答

更多
  • 你的愿望是我的命令(至少,当你的愿望符合我的愿望时): 当你运行phantomjs ,你是用exec运行还是像普通进程一样运行? 如果你使用exec会有什么不同吗? 问题背后的想法是你杀死运行另一个进程的shell(在echo的情况下,它是shell),但这并不一定会杀死进程的子进程。 也许你需要使用类似的东西: kill -TERM -- -$p kill -- -$p 向进程组发送信号,而不仅仅是进程。 另外,考虑一个'超时'命令是否会让你的生活更轻松(在Linux上timeout )。 Your w ...
  • 正如NSD所问,这实际上取决于它是如何产生的。 例如,如果您使用的是shell脚本,则可以使用nohup命令来运行子nohup 。 如果您使用的是fork/exec ,那么它会更复杂,但不会太多。 来自http://code.activestate.com/recipes/66012/ import sys, os def main(): """ A demo daemon main routine, write a datestamp to /tmp/daemon-log e ...
  • perldoc -f fork : 文件描述符(有时候锁定在这些描述符上)是共享的,而其他所有内容都被复制。 另请参阅perldoc perlipc 双向通信 。 更新:第二个想法,你想要这样的东西? #!/usr/bin/perl use strict; use warnings; my $pid = fork; die "Cannot fork: $!" unless defined $pid; if ($pid == 0) { print "Child start\n"; my ...
  • 每个孩子都会获得自己的父进程内存副本(至少在它修改任何内容时)。 如果你需要在进程之间共享,你需要查看共享内存或一些类似的IPC机制。 顺便说一句,为什么你把这个社区维基 - 这可能会限制你的回应。 Each child gets its own copy of the parent processes memory (at least as soon as it trys to modify anything). If you need to share betweeen processes you ne ...
  • 你可以用kill 。 pid从fork返回到父级。 You can use kill. The pid is returned to the parent from fork.
  • 实现此目的的一种方法是提供一些可以捕获的信号(不是SIGKILL )。 然后,安装一个信号处理程序,检测当前进程是否是父进程,如果它不是父进程,则调用_exit() 。 您可以使用SIGUSR1或SIGUSR2 ,也可以使用SIGQUIT 。 我在这里说明了这种技术。 可选地(如Lidong所建议的),父进程可以在发出kill()命令之前对信号使用SIG_IGN 。 signal(SIGQUIT, SIG_IGN); kill(-parent_pid, SIGQUIT); One way to accom ...
  • 根据COW的定义,这是不可能的。 您的进程可能没有明确分配内存,但它们肯定会隐式地执行。 当进程尝试修改标记为copy-on-write的页面时,操作系统需要暂停操作并分配新页面。 此分配可能会失败,并且程序中没有地方可以返回错误。 唯一可能的行动就是杀死这个过程。 您可以做的最好的事情是估计程序在峰值时需要多少内存,并将此信息与可用内存信息(例如来自/ proc / meminfo)结合起来。 完全禁用COW的根本解决方案也应该有效,但AFAIK Linux没有这个选项。 This is not poss ...
  • 显然, system块。 请改用exec : http : //ruby-doc.org/core-2.2.0/Kernel.html#method-i-exec unless pid=fork puts pid exec("echo start ; sleep 1 ; echo 1 ; sleep 1 ; echo 2 ; sleep 1 ; echo 3") exit end puts "Child: #{pid}" sleep 1 Process.kil ...
  • 我正在尝试使用waitpid来保持父级的活着 你告诉waitpid马上回来。 将WNOHANG更改为0 。 I am trying to use waitpid to keep the parent alive You told waitpid to return immediately. Change WNOHANG to 0.
  • 经过一些研究,我自己想出了这个。 我上面的方法并不完全有效,而且比需要的更复杂。 要注意的主要事项是当子进入时数据库连接会发生什么。 由于大多数开发人员应该知道在分叉进程时,子进程会获得所有内容的副本,包括数据库连接等资源。 然而,棘手的部分是当一个分叉的孩子退出时它会关闭那些资源。 这意味着子将关闭它从父级共享的相同数据库连接。 当子进程退出时,父进程将立即建立无效的数据库连接,当您尝试在父进程中进行查询时,您将收到类似“Mysql服务器已消失”的错误。 避免此问题的一个解决方案是确保父项在分叉子项后始终 ...

相关文章

更多

最新问答

更多
  • Apache HttpClient(4.1和更新版本):如何进行基本身份验证?(Apache HttpClient (4.1 and newer): how to do basic authentication?)
  • 复选框不适用于模态(Checkbox does not work in modal)
  • 当使用大标题无法正常工作时,iOS 11会滚动到顶部(iOS 11 scroll to top when using large titles doesn't work properly)
  • 为什么我的Arduino不能超过10?(Why can't my Arduino compare above 10?)
  • 从Lib中删除PDB文件/功能(Remove the PDB file/functionality from Lib)
  • rails-2.3.5和rack-1.0.1的来源在哪里?(Where are the sources for rails-2.3.5 and rack-1.0.1?)
  • 如何使用List <>成员不可变的类?(How to make a class with List<> member immutable?)
  • Microsoft Edge popup扩展如何获取后台页面?(Microsoft Edge popup extension how to get backgroundpage?)
  • python删除中文unicode字符串之间的空格,但不删除英文单词之间的空格(python to remove space between Chinese unicode strings but not between English words)
  • SBT:如何Dockerize一个胖罐子?(SBT: How to Dockerize a fat jar?)
  • 如何从服务器请求中保存图像的分区以便以后合并(How to save segements of image in memory from server request for merging later)
  • python这段程序中a=self.[:]是什么意思 self一般用法是啥
  • ActiveRecord :: StatementInvalid:PGError:错误:关系“指令”不存在(ActiveRecord::StatementInvalid: PGError: ERROR: relation “instructions” does not exist)
  • 虚拟机安装kail linux最低配置是多少?
  • fread()中的空字符和c中的strncpy()(Null character in fread() and strncpy() in c)
  • 从ShutdownHook中查找程序退出的原因(Find, from a ShutdownHook, why a program exits)
  • 每天在固定时间运行任务(Run a task at fixed time everyday)
  • 电脑开不了机了,开机后进了桌面,显示WINDOWS BOOT MANAGER
  • 获取字符串第n个出现的索引?(Get the index of the nth occurrence of a string?)
  • python selenium 怎么打开 Chrome 并且能设置代理,请问可以指导小弟一下吗。
  • 错误:imagecopymerge()期望参数2是资源(Error: imagecopymerge() expects parameter 2 to be resource)
  • 在我的代码中,“无法找到可安装的ISAM”错误的原因是什么?(What could be the cause of 'Could not find installable ISAM' error in my code?)
  • Access 2013 - 没有自动编号的顺序编号(Access 2013 - sequential numbering without autonumber)
  • 将带有函数的Javascript对象转换为字符串(Converting a Javascript Object with Functions into a String)
  • Java中实现封装与信息隐藏与抽象与隐藏数据的比较(Practical example Encapsulation vs Information Hiding vs Abstraction vs Data Hiding in Java)
  • 不要包必须匹配java文件所在的子目录吗?(Don't packages have to match the subdirectories the java file is in?)
  • PyCharm Python控制台中的文件路径错误(File path wrong in PyCharm Python Console)
  • 在数据框列上应用curve_fit(Apply curve_fit on dataframe columns)
  • Java中的DateTime.FromOADate()相当于什么(Java中的Datetime是Datetime的两倍)(What is the equivalent of DateTime.FromOADate() in Java (double to Datetime in Java))
  • 给定DCEL,其中双胞胎等于下一个边缘,细分可以有多少面?(Given a DCEL where the twin is equal to the next of an edge, how many faces can the subdivision have?)