1つの場合は、deployment.sh
環境とリリースバージョンの2つのパラメータを使用します。
deployment.sh uat release1
deployment.sh prod release1
いつでもやりたいです。deployment.sh
同じ環境とリリースバージョンを使用すると、シングルトンで実行できます。ただし、同時に実行deployment.sh uat release1
できますdeployment.sh prod release1
。
これを行う方法。ありがとう
答え1
これを達成する1つの方法は、複数のプロセスから1つのプロセスのみを選択するために明示的に使用されるファイルロックです。バラよりman flock
:
#! /bin/bash
category="$1"
if [ 'uat' != "$category" ] && [ 'prod' != "$category" ]; then
exit 2
fi
(
flock -n 9 || exit 1
# ... commands executed under lock ...
) 9>/var/lock/"$category"