2012-06-02 38 views
-1

我有一臺機器上運行process1並生成一些日誌文件。 現在我想啓動另一個進程,可以在任何計算機上想知道process1是否正在運行,並且在它正在運行的情況下,它想要在啓動process2的終端上對由進程1生成的日誌文件進行流式處理。在一臺機器上運行的進程如何知道另一個進程是否在使用c/C++的linux中的不同機器上運行?

Process2將被調用,如下所示:process2 -dir「DirPath」。在此DirPath進程1中寫入了一個文件,其中包含「進程1的PID」,「進程1的主機名」以及「進程1的日誌文件」等信息。所以process2可以訪問這個文件並且擁有關於process1的所有信息。現在process2想要知道process1當前是否正在運行並且如果它正在運行,那麼它需要將由process1寫入的日誌文件中寫入的數據流到啓動process2的終端。

+2

在第一臺機器上需要某種代理,它會通過網絡報告process1的狀態。根據您可能具有的特定約束,可以進行多種選擇。更加詳細一些。 –

+0

Process1可以在process2可以訪問的目錄中寫入一些文件,並且可以知道process1正在運行的進程ID和主機。使用process1的process Id和hostmachine,process2如何知道process1是否正在運行。但是我需要處理process1的各種退出,包括kill -9。 – Saurabh

+0

「目錄中的某個文件」不能幫助你,因爲它在另一臺機器上。 –

回答

1

使用ssh登錄到遠程機器並運行腳本以檢測進程是否正在使用ps和grep命令運行,然後根據您知道的路徑讀取日誌文件。如果你不想手動輸入密碼,你可以使用上面提到的ssh密鑰here

相關問題