Unix でデーモンをコーディングしようとしています。デーモンを起動して実行する方法の部分を理解しています。ここで、コマンドがデーモンを対象としている場合、シェルにコマンドを入力したときにデーモンが応答するようにします。
例えば:
デーモン名が「mydaemon」であるとしましょう
ターミナル 1 で mydaemon xxx と入力します。ターミナル 2 で mydaemon yyy と入力します。
「mydaemon」は引数「xxx」と「yyy」を受け取ることができるはずです。
あなたの質問を正しく解釈した場合、これをアプリケーションレベルの構造として行う必要があります。つまり、これはプログラムに固有のものであり、自分でコーディングする必要があります。
私がとるアプローチは、ラッパーであるという考えで「mydaemon」を書くことです。プロセステーブルまたはpidファイルをチェックして、「mydaemon」がすでに実行されているかどうかを確認します。そうでない場合は、新しいデーモンを fork/exec してください。その場合は、引数をそれに送信します。
「引数をそれに送信する」には、ここで説明されているように、名前付きパイプを使用します:名前付きパイプとは何ですか? 基本的に、名前付きパイプは「stdin」のようなものと考えることができますが、システムの残りの部分にはファイルとして表示されるため、実行中の「mydaemon」でそれらを開いて入力を確認できます。
最後に、この check-if-running-send-to-pipe の処理はすべて、*nix OS の API を使用してデーモン プログラムで実行することも、次を使用してスクリプトで実行することもできることに注意してください。例: 'ps'、'echo' など...