我想在启动时挂起(暂停)分叉进程,稍后恢复。有什么办法可以用POSIX或Solaris来做到这一点。启动时挂起分叉进程
回答
我是通过使用信号量和信号处理程序完成的。要唤醒孩子,父进程会向子进程发送一个信号,然后再从信号处理程序中发布信号。那个等待那个信号量的孩子,然后醒了过来。
您可以发送您的流程SIGSTOP
,然后通过SIGCONT
继续。
为什么不在分叉后的子进程代码中调用pause()
?
要么是这样,要么是对sigsuspend(2)的调用,然后是kill(pid, SIGXXX),其中SIGXXX是选择的信号。 SIGCONT也许? –
@Jorgen,sigsuspend不会做你认为的事情。 –
@迈克尔:它确实是文档所说的。 –
- 1. java进程在启动时挂起
- 2. 如何超时可能挂起的分叉进程?
- 3. RMagick(ImageMagick)在分叉进程中运行时挂起
- 4. 从另一个java进程启动java进程时进程挂起
- 5. 即使使用线程,启动进程会挂起主进程
- 6. ddd在启动时挂起
- 7. Eclipse启动时挂起
- 8. Elasticsearch在启动时挂起
- 9. FDT在启动时挂起
- 10. Eclipse启动时挂起
- 11. 分叉的子进程挂在node.js
- 12. 从子进程启动时,Drush挂起.Popen
- 13. 重定向输出相对较大时启动进程挂起
- 14. 分叉进程
- 15. SDL_SetVideoMode挂起进程
- 16. 程序在使用进程时挂起
- 17. Alfresco tomcat在启动过程中挂起
- 18. RubyMine在启动调试器时挂起
- 19. Hubot在启动时挂起/冻结
- 20. 模拟器在启动时挂起
- 21. 多个Android AVD在启动时挂起
- 22. 在Ubuntu上启动Firefox时Selenium挂起
- 23. icCube负载在启动时挂起
- 24. JRuby:Watir在启动浏览器时挂起
- 25. Crystal Report 11在启动时挂起
- 26. eclipse/TFS在启动时挂起
- 27. 挂起并恢复由QProcess在Qt中启动的子进程
- 28. Java VisualVM挂起连接到本地从eclipse启动的进程
- 29. Socket.io node.js挂起并monit不重新启动进程
- 30. 通过python多处理启动子进程挂起
在执行过程中发送SIGSTOP是否安全?他们不是一种从一开始就暂停的方式吗? Ptrace是我想到的一件事。 – MetallicPriest
您刚刚推荐了一种易受竞争条件影响的解决方案。 –
您可以随时使用raise来发送信号:http://pubs.opengroup.org/onlinepubs/009695399/functions/raise.html –