2個問題:編程檢查某個進程在後臺中運行
1)是否有任何Linux/POSIX的API知道,如果一個過程已經調用作爲後臺進程?
linux> myprogram &
爲myprogram
的代碼可以檢測到它已被調用在後臺(通過&
)運行?
2)是否有任何Linux/Posix API使進程在後臺運行,即使它已經作爲前臺進程啓動? I.E.在運行時以某種方式「脫離」shell(或者完全脫離shell,或者作爲shell的後臺進程運行)。
linux> myprogram
**** starting myprogram as a background job ****
linux>
的shell提示應該馬上就回來給我,因爲myprogram
已經從外殼脫離,並在後臺
您可以檢查'top'命令的代碼,並查看它如何獲取命令名稱和進程狀態(可能涉及從'/ proc'讀取文件)。 – 2013-02-15 12:03:40