回答
“背景”和“前景”不是一般用于过程的术语,而是仅适用于可按需等待工作的壳。
您可以使用fg将过程带到前台,并使bg将过程置于背景。你应该知道这个过程的PID,以便将它带到前台。参考fg和bg的linux手册了解更多信息
与Ignacio Vazquez-Abram's answer相似,我建议你模拟shell前景/背景模型。
据我所知,背景处理意味着挂起它。最简单的方法是通过SIGSTOP
。当你前台处理时,发送它SIGCONT
。只要您的“工作”当前只有一个在前台,它将是唯一一个读取和写入会话的tty
。
kill(child_pid, SIGSTOP);
kill(child_pid, SIGCONT);
您可能希望以后你fork
暂停每个进程,在你面前execv
,并给你的shell的用户选择稍后前景他们保持不变。
if (!fork()) { // we are the child
raise(SIGSTOP); // suspend self
execv(...); // run the command (after we've been resumed)
这里是我发现一些相关链接:
我不认为在后台运行程序意味着挂起它。这意味着程序运行父级运行时。 – 2011-04-29 21:02:55
当涉及到程序(过程)时,没有前景或背景的概念。这是一个外壳的概念。有关这方面的更多信息,请参阅Ignacio Vazquez-Abrams的答案。 – 2011-04-30 12:08:44
- 1. 在后台运行进程
- 2. 如何在后台运行进程? c#
- 3. 如何将孤立的后台进程恢复到前台?
- 4. 如何将正在运行的进程移动到后台(UNIX)
- 5. 发送后台进程到前台
- 6. Spotify - 运行后台进程
- 7. WP7后台进程运行
- 8. 运行后台进程
- 9. 将进程带到前台
- 10. 在后台运行前台ksh脚本
- 11. 如何在后台运行进度条?
- 12. 如何将当前正在运行的linux进程放在后台?
- 13. 如何继续在后台运行前台服务也在android
- 14. iOS:将信息发送到未在前台或后台运行的程序?
- 15. Excel进程仍在后台运行
- 16. Ruby在后台运行进程
- 17. 在Android中运行后台进程
- 18. 在Android中的后台运行进程
- 19. nohup:在后台运行PHP进程
- 20. 在PHP中运行后台进程
- 21. 在后台运行进程php
- 22. 在Perl中运行后台进程
- 23. 在Linux下运行php5后台进程
- 24. 当应用程序进入后台时运行后台线程
- 25. 前台和后台进程的问题
- 26. 程序在前台运行,但不能在后台使用nohup
- 27. 如何在后台运行?
- 28. 如何在后台运行
- 29. 如何运行Python的子进程并将其保留在后台
- 30. 如何在后台运行Python程序?
+1这是正确的。 “前台”进程是接收标准输入并写入标准输出/标准错误的进程。操作系统本身没有这个概念。 – Borealid 2011-04-26 04:46:29
收到stdin。即使后台进程可以写入标准输出和标准错误。 – 2011-04-26 04:48:35
值得一提的是,如果原始海报意味着他们需要父母在特定孩子结束之前停止做任何事情,他们只需要'waitpid(2)'就可以了。 – 2011-04-26 06:28:54