Processo aguardando entrada de outro processo

Processo aguardando entrada de outro processo

Eu preciso ter um mecanismo onde 2 processos devam se comunicar. O processo A fará algum trabalho e aguardará a entrada [caminho do arquivo] de outro processo B. Cada vez que a máquina Linux for reinicializada, isso deverá acontecer.

O número de vezes que isso acontece é controlado pela contagem no processo A.

Pensei em fazer isso usando o serviço systemd e não consegui nenhuma entrada.

Responder1

Uma maneira de fazer isso seria usando um soquete. Claro, isso implica que você precisa usar bibliotecas de soquete de rede em seus processos, mas esta é a forma mais comum de permitir a comunicação de dois processos.

Como os dois processos estão na mesma máquina, sugiro que você configure um soquete systemd unix.

Então, o Processo A pode se conectar ao soquete para escutar e o processo B pode enviar dados por meio dele.

Contanto que seus processos sejam totalmente automáticos, ouvindo e enviando dados por si próprios e não exijam intervenção manual, não importa se são serviços do systemd ou não - apenas faça com que eles registrem informações em arquivos ou no diário, para que você possa depurar o que está acontecendo .

Aqui estão alguns links que podem ajudá-lo a começar com isso:
manual do systemd.socket
Um breve guia sobre como configurar um serviço com soquete no systemd
A ideia geral por trás da comunicação entre processos em C

informação relacionada