0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

シェル(shell)スクリプトで並列処理をする

Posted at

目的

pythonで作成したプログラムをシェルから実行する事でsystemd管理をしている。この呼び出しを複数を行いたい場合にシェルスクリプトで並列処理を行う必要が出てきた。

TL;DR

#!/bin/bash

process1(){
    /home/shoma/money/mon2.py
}

process2(){
    /home/shoma/money/mon2.py
}

# 各プロセスをバックグラウンドで起動する
process1 &
pid1=$!
process2 &
pid2=$!

# 各プロセスの終了を待つ
wait $pid1
wait $pid2

echo "全てのプロセスが完了しました。"

確認

#!/bin/bash

process1(){
    /home/shoma/money/mon2.py
}

process2(){
    /home/shoma/money/mon2.py
}

# 各プロセスをバックグラウンドで起動する
process1 &
pid1=$!
process2 &
pid2=$!

# 各プロセスの終了を待つ
wait $pid1
wait $pid2

echo "全てのプロセスが完了しました。"

並列処理が行われているはずならば、20秒で実行が完了するはず

root@raspberrypi:/home/shoma# time ./kami.sh
全てのプロセスが完了しました。

real    0m20.015s
user    0m0.005s
sys     0m0.016s

おおすごいちゃんと出来ている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?