BLOGTIMES
2019/07/14

xargs を使ってコマンドを並列実行させる

  sh  cli 
このエントリーをはてなブックマークに追加

Linux 上のバッチで重い処理(例えば画像処理など)をする際に、複数プロセスを同時に起動したいということがあると思いますが、自分でマルチスレッドのプログラムを書くのは骨が折れます。そんなときに xargs を使うとかなり楽に複数プロセスの処理が書けることが分かったのでメモ。

以下の -P の部分がポイントで、これがプロセス数の指定になります。
時刻を見ると分かる通り、コマンドが 2 つずつ実行されていることが分かります。

$ seq 1 10 | xargs -P 2 -I {} bash -c "sleep 3 ; echo -n '{} ' ; date '+%Y/%m/%d %H:%M:%S'" 1 2019/07/14 15:03:26 2 2019/07/14 15:03:26 3 2019/07/14 15:03:29 4 2019/07/14 15:03:29 5 2019/07/14 15:03:32 6 2019/07/14 15:03:32 7 8 2019/07/14 15:03:35 2019/07/14 15:03:35 9 2019/07/14 15:03:38 10 2019/07/14 15:03:38

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11082
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン