
Necesito tener un mecanismo en el que 2 procesos deban comunicarse. El proceso A hará algún trabajo y esperará la entrada [ruta del archivo] de otro proceso B. Cada vez que se reinicie la máquina Linux, esto debería suceder.
El número de veces que esto sucede está controlado por el conteo en el proceso A.
Pensé en hacer esto usando el servicio systemd y no pude obtener ninguna entrada.
Respuesta1
Una forma de hacerlo sería mediante el uso de un enchufe. Por supuesto, esto implica que necesita utilizar bibliotecas de sockets de red en sus procesos, pero esta es la forma más común de permitir que dos procesos se comuniquen.
Dado que los dos procesos están en la misma máquina, le sugiero que configure un socket systemd Unix.
Luego, el proceso A puede conectarse al socket para escuchar y el proceso B puede enviar datos a través de él.
Siempre y cuando sus procesos sean completamente automáticos, escuchen y envíen datos por sí mismos y no requieran intervención manual, no importa si son servicios systemd o no; simplemente haga que registren información en archivos o en un diario, para que pueda depurar lo que está sucediendo. .
Aquí hay algunos enlaces que lo ayudarán a comenzar con esto:
manual systemd.socket
Una breve guía sobre cómo configurar un servicio con un socket en systemd
La idea general detrás de la comunicación entre procesos en C