xargsでマルチプロセス

単純にマルチプロセスで実行したいバッチがあった場合
シェルスクリプトから一件づつバックグラウンドで実行したりしてたのですが
バックグラウンド実行だとGearmandでうまく動かないので、何か方法ないかと調べたら
下記のようなシンプルな方法で出来たのでメモ。

cat namelist.txt | xargs -n1 -P4 -I % /bin/perl batch.pl --name=%

これで、namelist.txtの1行ごと、4プロセスづつ実行されます。
-I % でnamelist.txtの1行の文字列が取得出来ます。

irako について

広告系Webエンジニア 今は事業本部長をやっています。エンジニアを名乗れるかそろそろ怪しいです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です