在Unix系統中,可以通過從/ proc讀取數據來動態監視系統。我希望通過將「當前狀態」動態保存到文件中來在我的應用程序中實現這種監視。但是,我不希望IO延遲我的程序,所以最好使文件變成虛擬的,即不是存儲在磁盤中,而是存儲在內存中。有沒有辦法做到這一點?感謝提示!動態監視程序狀態
Q
動態監視程序狀態
1
A
回答
3
爲什麼不使用共享內存和信號量。做一個'男人shmget'作爲一個起點。
0
嘗試FUSE。它對編寫虛擬文件系統特別有用。它上面已經有很多文件系統。
0
我不知道你的具體要求,所以我只能猜測,但是在Linux下的每個文件都放在/ dev/shm裏。但這並不意味着它不在I/O中,只是I/O速度更快。如果你不想通過文件描述符或類似的方式進行I/O操作,請像其他人一樣建議並使用共享內存段,但這對每個人來說都難以閱讀。讓其他程序打開並讀取一個文件,然後調用程序中的某些函數(由內核空間中的/ proc完成)是不可能的。也許一個文件系統套接字或fifo是更符合你需要的東西(例如,當你有選擇/(e)輪詢程序時)。當你完全控制系統時,tmpfs也許對你有用。
1
作爲一種替代方案,您可以使您的應用程序成爲套接字服務器。通過這種方式,只有在被要求時(甚至不需要使用當前狀態更新內存區域),您也可以使用狀態信息進行響應,並且還可以從遠程計算機控制程序。如果狀態本身不是大量的數據,我認爲這是最靈活的解決方案。
如果你還讓你的應用程序響應一個HTTP請求(我不是指處理所有http協議的可能性,只是你想支持的請求),那麼你也可以避免寫一個客戶端,如果你想無論如何寫它可能更容易找到能夠做到這一點的圖書館和程序員。
讓它聽取端口80,你可以通過互聯網檢查你的程序通過防火牆,沒有努力:-)(好吧......假設程序本身可以從互聯網上,但即使這是一個簡單的以及向系統管理員要求的常見事項)。
相關問題
- 1. 從AppleScript啓動控制檯程序並監視其狀態
- 2. 監視隊列的狀態
- 3. SQL Server狀態監視器
- 4. 監視ASP.NET會話狀態
- 5. 使用STAT狀態監視Linux進程
- 6. 啓動遠程進程和監視器狀態
- 7. 監視鍵盤的狀態,沒有程序焦點
- 8. websphere中的應用程序狀態監視
- 9. 如何監視C#windows應用程序的狀態?
- 10. 動態會話狀態提供程序
- 11. GPS狀態監聽
- 12. 如何監視MySQL服務器狀態
- 13. 監視IP地址狀態的變化
- 14. Microsoft圖形實時狀態監視
- 15. 監視的MediaPlayer的狀態在GUI
- 16. 監視pdb中對象的狀態
- 17. 使用libcurl監視網絡的狀態
- 18. dojo狀態監視不起作用
- 19. js,對象的狀態監視
- 20. 監視ccmsetup.exe安裝狀態usng powershell
- 21. 在Mac OSX上監視鼠標狀態
- 22. 監視耳機插孔,當應用程序處於非活動狀態
- 23. Android應用程序狀態從啓動狀態恢復 - 恢復狀態
- 24. 動態窗體和視圖狀態
- 25. 使tmux只監視狀態返回活動
- 26. 由Intent = new Intent(Intent.ACTION_SEND)啓動的監視消息發送狀態
- 27. 哪個監視器處於活動狀態?
- 28. TIBCO Rendezvous Rv守護進程 - 監視狀態和錯誤
- 29. 使用node.js遠程監視系統狀態
- 30. 如何在Java中監視線程的狀態?
共享內存+信號量實際上會導致性能下降。 – 2011-08-15 19:32:08
我原以爲一個簡單的監控應用程序可以每秒鐘檢查共享內存。應用程序可能只有一個單獨的線程,將穩步增加的數字放入共享內存中。監控應用程序只需確保它正在增加。 –