
Мне нужен механизм, в котором 2 процесса должны взаимодействовать. Процесс A будет выполнять некоторую работу и ждать ввода [путь к файлу] от другого процесса B. Это должно происходить каждый раз при перезагрузке машины Linux.
Количество таких событий контролируется счетчиком в процессе A.
Думал сделать это с помощью службы systemd, но не смог получить никаких входных данных.
решение1
Для этого можно использовать сокет. Конечно, это подразумевает, что вам нужно использовать библиотеки сетевых сокетов в ваших процессах, но это наиболее распространенный способ позволить двум процессам общаться.
Поскольку оба процесса находятся на одной машине, я предлагаю вам настроить unix-сокет systemd.
Затем процесс A может подключиться к сокету для прослушивания, а процесс B может отправлять через него данные.
Пока ваши процессы полностью автоматизированы, прослушивают и отправляют данные самостоятельно и не требуют ручного вмешательства, неважно, являются ли они службами systemd или нет — просто заставьте их регистрировать информацию в файлах или в journald, чтобы вы могли отладить происходящее.
Вот несколько ссылок, которые помогут вам начать:
systemd.socket руководство
Краткое руководство по настройке службы с сокетом в systemd
Общая идея межпроцессного взаимодействия в языке C