0 場景:子進程創建了一個子進程等,我怎麼能得到它的pid?獲取遞歸子進程的pid 我用subprocess.popen來啓動第一個子進程,例如word文件,這個word文件生成了一個新的子進程,我怎麼能得到它的pid? 來源 2016-11-09 MichaelK +0 [打開與POPEN的處理和獲取PID]的可能的複製(http://stackoverflow.com/questions/7989922/opening-a-process-with-popen-並得到該pid) – +0 你甚至讀過這個問題嗎? 我問了內部pid – MichaelK +0 是的,如果你有根進程的pid,你可以通過調用模塊中的pstree來請求嵌套的pid, pstree -p $ pid(root_process_pid)| grep -o'([0-9] \ +)'| grep -o'[0-9]'+'http://unix.stackexchange.com/questions/67668/elegantly-get-list-of-descendant-processes –
1 使用psutil: parent = psutil.Process(parent_pid) children = parent.children() # all child pids can be accessed using the pid attribute child_pids = [p.pid for p in children] 來源 2016-11-09 15:23:02 languitar +0 它沒有幫助:( child_pids似乎總是空的(即使ch ild過程出現) – MichaelK +1 然後你的過程使用一些技術從孩子分離。您也可以使用psutil來查找子流程的父pid。也許這有助於發現發生了什麼。 – languitar
[打開與POPEN的處理和獲取PID]的可能的複製(http://stackoverflow.com/questions/7989922/opening-a-process-with-popen-並得到該pid) –
你甚至讀過這個問題嗎? 我問了內部pid – MichaelK
是的,如果你有根進程的pid,你可以通過調用模塊中的pstree來請求嵌套的pid, pstree -p $ pid(root_process_pid)| grep -o'([0-9] \ +)'| grep -o'[0-9]'+'http://unix.stackexchange.com/questions/67668/elegantly-get-list-of-descendant-processes –