Month: 3月 2014

xargsでマルチプロセス

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

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

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