進程等待其他進程的輸入

進程等待其他進程的輸入

我需要有一個機制,其中兩個進程應該要進行通訊。進程 A 將執行一些工作並等待來自另一個進程 B 的輸入 [檔案路徑]。

這種情況發生的次數由進程 A 中的計數控制。

想到使用 systemd 服務來執行此操作,但無法獲得任何輸入。

答案1

解決這個問題的一種方法是使用套接字。當然,這意味著您需要在進程中使用網路套接字庫,但這是允許兩個進程進行通訊的最常見方式。

由於兩個進程在同一台機器上,我建議您配置一個systemd unix套接字。

然後,進程A可以連接到該套接字進行監聽,進程B可以透過它傳送資料。

只要您的進程是全自動的,自行監聽和發送資料並且不需要手動幹預,它們是否是systemd 服務並不重要- 只需讓它們將資訊記錄在文件或日誌中,這樣您就可以調試正在發生的事情。

以下是一些可以幫助您開始此操作的連結:
systemd.socket 手冊
關於在 systemd 中使用套接字設定服務的簡短指南
C 進程間通訊背後的整體思想

相關內容