両方のプロセスが通信する必要があるメカニズムが必要です。プロセスAはいくつかのタスクを実行し、他のプロセスBからの入力[ファイルパス]を待ちます。これは、Linuxコンピュータが再起動されるたびに発生します。
この発生回数は、プロセスAの回数に応じて制御される。
このためにsystemdサービスを使用しようとしましたが、入力を受け取ることができませんでした。
答え1
この問題を解決する1つの方法はソケットを使用することです。もちろん、これはプロセス内でネットワークソケットライブラリを使用する必要があることを意味しますが、これは両方のプロセスが通信できるようにする最も一般的な方法です。
両方のプロセスが同じシステム上にあるので、systemd unixソケットを設定することをお勧めします。
その後、プロセスAはそのソケットに接続してリッスンし、プロセスBはそれを介してデータを送信できます。
プロセスが完全に自動化され、それ自体がデータを受信して送信し、手動介入が不要な場合は、システムサービスであるかどうかは重要ではありません。情報をファイルに記録またはデバッグできるように記録するだけです。どうしたの?
始めるのに役立ついくつかのリンクは次のとおりです。
systemd.socket マニュアル
systemdでソケットを使用してサービスを設定する方法の簡単なガイド
Cのプロセス間通信に関する一般的なアイデア