进程等待其他进程的输入

进程等待其他进程的输入

我需要有一种机制,其中两个进程应该进行通信。进程 A 将执行一些工作并等待来自另一个进程 B 的输入 [文件路径]。每次 Linux 计算机重新启动时,都会发生这种情况。

这种情况发生的次数由进程 A 中的计数控制。

想到使用 systemd 服务来执行此操作,但无法获得任何输入。

答案1

解决这个问题的一种方法是使用套接字。当然,这意味着您需要在进程中使用网络套接字库,但这是允许两个进程进行通信的最常见方式。

由于两个进程在同一台机器上,我建议您配置一个systemd unix套接字。

然后,进程A可以连接到该套接字进行监听,进程B可以通过它发送数据。

只要您的进程是全自动的,自行监听和发送数据并且不需要手动干预,它们是否是 systemd 服务并不重要 - 只需让它们将信息记录在文件或日志中,这样您就可以调试正在发生的事情。

以下是一些可以帮助您开始此操作的链接:
systemd.socket 手册
关于在 systemd 中使用套接字设置服务的简短指南
C 进程间通信背后的总体思想

相关内容