
2 つのプロセスが通信するためのメカニズムが必要です。プロセス A は何らかのジョブを実行し、別のプロセス B からの入力 [ファイル パス] を待機します。Linux マシンが再起動されるたびに、この処理が行われる必要があります。
これが発生する回数は、プロセス A のカウントによって制御されます。
systemd サービスを使用してこれを実行しようと考えましたが、入力を取得できませんでした。
答え1
これを実現する方法の 1 つは、ソケットを使用することです。もちろん、これはプロセスでネットワーク ソケット ライブラリを使用する必要があることを意味しますが、これは 2 つのプロセスが通信できるようにする最も一般的な方法です。
2 つのプロセスは同じマシン上にあるため、systemd unix ソケットを構成することをお勧めします。
次に、プロセス A はソケットに接続してリッスンし、プロセス B はそれを介してデータを送信できます。
プロセスが完全に自動化され、自らデータをリッスンして送信し、手動による介入を必要としない限り、それが systemd サービスであるかどうかは問題ではありません。ファイルに情報を記録するか journald に情報を記録するだけで、何が起こっているかをデバッグできます。
これを開始する際に役立つリンクをいくつか示します。
systemd.socket マニュアル
systemd でソケットを使用してサービスを設定するための簡単なガイド
C言語におけるプロセス間通信の基本的な考え方