Q
挂一个子进程
1
A
回答
1
使用可以使用SIGSTOP来挂起一个子进程 - 但这与子进程进入无限循环或有条件的等待有明显不同 - 仍然可能足够接近进行测试。
要检查子进程没有挂起,你需要发送心跳给父母(你需要某种通信通道 - 至少stdin/stdout)。然后,如果孩子没有发送一些心跳消息,那么孩子已经挂了。
0
子进程将继承在fork之前创建的任何管道。你可以用它来“悬挂”你的孩子并让它知道什么时候继续。你可以让你的子进程在管道上尝试一个阻塞读操作,它会阻塞(即挂起),直到父进程写入内容为止。
你也可以使用Douglass提到的信号。您可以让操作系统进行基本的停止/继续操作,或者您可以执行信号处理程序来执行更复杂的操作(如进入无限循环)。
对于这两种例子可以在Unix Programming FAQ一吨的过程控制,信号处理,管道等其他信息一起被发现...
你可以尝试寻找在/ proc,以确定是否被挂起。您可以读取/ proc/< child-pid >/stat以获取大量低级别进程信息,包括当前状态,进程已调度的用户/内核时间量,当前堆栈和指令指针等。 ..使用这个组合,你可以尝试确定过程是否挂起。查看proc(5)手册页获得/ proc/<pid>/stat的更多信息。
相关问题
- 1. 杀死一个悬挂的子进程
- 2. 没有挂父进程的子进程
- 3. Python子进程.Popen挂起
- 4. Gulp子进程挂起
- 5. 挂钩到另一个终端进程?
- 6. Python子进程如何确定子进程是否挂起?
- 7. 当一个MPI进程执行MPI_Barrier()时,其他进程挂起
- 8. Python子进程通信挂起
- 9. Linux:fork&execv,等待子进程挂起
- 10. Python子进程调用挂起?
- 11. 子进程挂在管道内
- 12. Python的子进程调用挂起
- 13. 子进程readline挂起等待EOF
- 14. 分叉的子进程挂在node.js
- 15. 调用一个子进程
- 16. 创建一个子进程
- 17. 超时一个子进程
- 18. 父进程有多个子进程和2个子进程有一个子进程
- 19. 从另一个java进程启动java进程时进程挂起
- 20. perl父进程挂起等待子进程读取stdin
- 21. 检测子进程是否挂起父进程
- 22. 已完成子进程但父进程挂起
- 23. Ruby Tracepoint - 将挂钩挂接到open3子进程
- 24. 挂载PostgreSQL进程
- 25. 进程间挂接
- 26. SDL_SetVideoMode挂起进程
- 27. 如何区分一个子进程与其他子进程
- 28. 将子进程管道插入另一个子进程
- 29. 如何从一个子进程派生子进程分别
- 30. 进程线程(或整个进程)被挂起