こちらの記事で、二重起動をしないようにするシェルスクリプトの書き方を紹介しました。ここでは、指定した数までは同時起動を許可する方法を紹介します。
■サンプルスクリプト
以下の様なスクリプトになります。4行目の$pcount -gt 2となっている【2】の部分の数値を変更することで、同時起動してもよい数を指定できます。仮に10にすれば、10個同じシェルスクリプトが起動することになります。
#!/bin/bash
processlist=$(pgrep -fl "$0")
pcount=$(echo "$processlist" | wc -l)
if [ $pcount -gt 2 ]; then
echo "既に起動されています"
exit 1
fi
#ここにコマンドをかく
仕組みとしては、pgrepでこのスクリプト名のプロセス一覧を取得し、wcコマンドで行数をカウントしています。
結構便利なときもあるので、参考にしてみてください。では。