回答
「背景」和「前景」不是一般用於過程的術語,而是僅適用於可按需等待工作的殼。
您可以使用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