「コマンド保護」は可能ですか?

「コマンド保護」は可能ですか?

stdinを介して画像を受け取り、それを別の形式に変換してstdoutに出力できるコマンドラインユーティリティがあります。

プログラムはこれを使用していますが、実行するたびに子プロセスを呼び出す必要がありますが、非常に遅いです。

もしそうなら、systemdを使ってこのコマンドラインプログラムをメモリに保持し、何とか画像データを受け取り、出力できる「サーバー」に切り替える方法があるのだろうか。

答え1

  1. もちろん、プログラムを事前に開始できますが、標準入力として何も送信しないことがあります。しかし、;それでは必要なときにすでに始まっています。もちろん、「使用」が終了すると、プロセスは終了し、別のプロセスを開始する必要があります。ただし、ファイルの変換と書き込みも即時ではないと仮定すると、次のプロセスをすでに開始して後続のイメージを準備できます。実際に待機しているプロセスプールがある可能性があります。 Linux Webサーバーの初期の非常に標準的な技術である「ワーカープロセス」です。 (これらのどれもsystemdとは関係ありません。)
  2. ここは図書館です。正しい方法は、これらのハンドオーバーに高価な場合、データを別のプロセスに渡さないことです(とにかく疑問です。はい、プロセスの作成には高価ですが、Linuxは実行可能ファイルをキャッシュします...) 。代わりに、プログラムから直接caifライブラリを使用してデータを変換してください。それが図書館の存在理由です。

関連情報