2010-06-13 90 views
0

我想要一個腳本啓動並與長時間運行的進程進行交互。該進程在腳本執行第一次時啓動,之後腳本可以重複執行,但會檢測到進程已經在運行。腳本應該能夠與流程交互。我希望這可以在Unix和Windows上工作。檢測並與長時間運行的進程交互

我不確定我是如何做到這一點的。具體如何檢測流程是否已在運行並打開管道?我應該使用套接字(例如,在已知端口上註冊服務器進程,然後檢查它是否響應),還是應該使用「命名管道」?或者有更簡單的方法嗎?

回答

2

套接字是更容易讓Windows和其他操作系統之間移植,所以這就是我會推薦它命名管道(這就是爲什麼如IDLE使用套接字而不是命名管道 - 後者上需要依賴於平臺的代碼Windows,例如通過​​[[或第三方win32allcython & c]],而套接字正常工作)。

0

那麼這裏是一個想法...

  1. 到位狀態別的地方,那 可以查詢/查詢。
  2. 當進程啓動時,發佈 「正在運行」狀態。
  3. 在此處檢查腳本以查看進程是否正在運行。
  4. 我也會使用一個單獨的地方 後控制值。例如將「 」值設置爲「控制集」,並且 過程在其運行時行爲中每當到達決策點 時查找這些值 。