他のプロセスからの入力を待機しているプロセス

他のプロセスからの入力を待機しているプロセス

2 つのプロセスが通信するためのメカニズムが必要です。プロセス A は何らかのジョブを実行し、別のプロセス B からの入力 [ファイル パス] を待機します。Linux マシンが再起動されるたびに、この処理が行われる必要があります。

これが発生する回数は、プロセス A のカウントによって制御されます。

systemd サービスを使用してこれを実行しようと考えましたが、入力を取得できませんでした。

答え1

これを実現する方法の 1 つは、ソケットを使用することです。もちろん、これはプロセスでネットワーク ソケット ライブラリを使用する必要があることを意味しますが、これは 2 つのプロセスが通信できるようにする最も一般的な方法です。

2 つのプロセスは同じマシン上にあるため、systemd unix ソケットを構成することをお勧めします。

次に、プロセス A はソケットに接続してリッスンし、プロセス B はそれを介してデータを送信できます。

プロセスが完全に自動化され、自らデータをリッスンして送信し、手動による介入を必要としない限り、それが systemd サービスであるかどうかは問題ではありません。ファイルに情報を記録するか journald に情報を記録するだけで、何が起こっているかをデバッグできます。

これを開始する際に役立つリンクをいくつか示します。
systemd.socket マニュアル
systemd でソケットを使用してサービスを設定するための簡単なガイド
C言語におけるプロセス間通信の基本的な考え方

関連情報