試圖在linux上啓動進程時尋求通知的方式。問題在於,流程A啓動流程B,流程B在啓動流程C後死亡。我需要跟蹤A,B和C的流程ID。流程歷史記錄不針對死進程維護。Linux在進程啓動時通知
1
A
回答
0
您可能想要process accounting,例如GNU acct。但是這可能會處理大部分流程。
如果你可以改變,配置或修改您的一個,乙,或Ç考慮使用syslog(3)。這可以如同用例如程序B來代替那樣簡單。一個以logger(1)開頭的腳本,然後exec
-原始的B程序。你甚至可以嘗試用你的PATH
來玩弄「透明」的做法。
1
當進程啓動時,您不需要獲取通知,只需要可靠地跟蹤屬於特定組的進程。那麼,Linux有一個偉大的設施 - 使用Control Groups。你可以閱讀更多關於控制組here。
將進程A移動到其自己的控制組中,其所有後續子進程及其子進程將默認屬於該控制組,因爲可以查詢可以使用屬於控制組的進程的PID列表它來跟蹤這些過程。
以這種方式使用cgruoups還有其他好處 - 例如跟蹤甚至限制此進程組使用的資源(CPU時間,IO帶寬等),凍結和重新啓動組的能力整體和更多。
CGroups正好是分佈式批處理作業管理系統HTCondor用於完成相同任務的機制,因此在這個主題上有很多與HTcondor相關的材料。例如見section in the HTCondor manual和wiki post。
祝你好運
相關問題
- 1. Linux上的進程啓動時間
- 2. Linux守護進程啓動
- 3. 線程啓動時通知對象
- 4. Linux - 在系統啓動時自動運行哪些進程
- 5. Docker - 進程不在啓動時啓動
- 6. 從遠程通知啓動
- 7. 通過C++代碼在Linux上啓動/停止守護進程
- 8. 如何在Windows和Linux中終止進程時收到通知?
- 9. 如何在vmware啓動時調試linux進程?
- 10. didFinishLaunchingWithOptions遠程通知在應用程序啓動時爲空
- 11. 重新啓動進程腳本linux
- 12. 從Linux中的CGI啓動進程
- 13. 在Linux啓動時啓動腳本
- 14. 無法在啓動時在Linux中啓動程序
- 15. Linux在崩潰時自動重新啓動應用程序 - 守護進程
- 16. JBoss啓動通知
- 17. linux啓動過程
- 18. Linux內核如何知道在啓動時加載哪些驅動程序?
- 19. 的Linux啓動時
- 20. 如何知道進程是否已在Linux中啓動但崩潰
- 21. 查殺未知啓動守護進程
- 22. 在應用程序啓動時延遲ios權限通知?
- 23. 推送通知每次在應用程序啓動時顯示
- 24. 如何在某個應用程序啓動時得到通知?
- 25. 在應用程序啓動時觸發Android通知
- 26. 確定何時通過通知啓動Windows 8應用程序
- 27. 在啓動時啓動java進程並在死時自動重啓
- 28. Linux守護進程停止啓動 - 停止守護進程
- 29. 如何確定Linux進程啓動的日期和時間?
- 30. 使用gdb啓動時的進程轉儲Linux
偶爾使用strace(1)可能就足夠了。 –
解釋什麼是* A *,* B *和* C *。你有他們的源代碼嗎?他們是免費軟件嗎?你可以配置它們嗎(例如用一個包裝shell腳本替換它們中的一些)? –