命令リスト実行時に追加

命令リスト実行時に追加

実行したいコマンドの巨大なリスト(すべて同じタスクを実行)をコンパイルしていますが、リストのコンパイルに時間がかかるため、完了する前に実行を開始したいと思います。もう一つは長く、リストが枯渇する危険はありません。)

コマンドリストを実行する一般的な方法は、コマンドを一覧表示するシェルスクリプトを作成することですが、スクリプトの実行を開始するとコマンドを追加できなくなります。

これまで私が見つけた方法は、コマンドを入れてcommand.list持つことですparallel --jobs 1 --line-buffer :::: command.list。ただし、これには非ユーティリティの使用parallel(GNUパラレルを使用しているため、more-utilsのプログラムと動作しているかどうかわかりません)が含まれます。並列実行は少し過剰になったようですparallel

より簡単な方法がありますか?何かをめちゃくちゃにしてリストがすべてなくなったら、どのコマンドが実行されたかを追跡できればいいようです。

ベストアンサー1

から:https://www.gnu.org/software/parallel/man.html#example-gnu-parallel-as-queue-system-batch-manager

true >jobqueue; tail -n+0 -f jobqueue | parallel --joblog my.log &
echo my_command my_arg >> jobqueue
my_job_generator >> jobqueue

これにより、完了したジョブ履歴(my.log)が提供されます。

GNUパラレルバージョン20220222はジョブのみを出力します。N(そしてに追加してくださいmy.log)作業するときn+1追加されました。これが許可されていない場合は、別のダミージョブを追加するだけです。

echo true dummy >> jobqueue

以前のバージョンの動作は少し異なりました。

おすすめ記事