- blogs:
- cles::blog
« トラ!トラ!トラ! :: UTF-8のBOMの削除でハマる »
2010/11/28

bashで多重起動を防止する(その2)

ある人と排他制御の話をしていて、「スクリプトを Ctrl + C なんかで途中で止めたりするとロックファイルが削除されなくて、それをいちいち消すのが面倒ですよね」「マシン落ちたりしない前提ならば、trap使えば大丈夫でしょ」という話になったので、以前、書いたbashで簡単な多重起動防止スクリプトをmkdirを使ったバージョンに書き直してみました。
#!/bin/bash
BASENAME=`basename $0 .sh`
SCRIPT_DIR=`dirname $0`
LOCK_DIR="LOCK_${BASENAME}"
cd "$SCRIPT_DIR"
mkdir "$LOCK_DIR" >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "[ERROR] Lock failed."
exit 1
fi
trap 'rmdir "$LOCK_DIR"' EXIT
# ここに処理を書く
sleep 10
確かに trap 使えば Ctrl + C でプログラムを止めてもちゃんとロックディレクトリが削除されますね。
意外とシェルスクリプトちゃんと使いこなせていことを実感しました。
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3929
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
« トラ!トラ!トラ! :: UTF-8のBOMの削除でハマる »
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Thunderbird のメッセージをスレッド化しないようにする(7200)
2 . Word で数式がグレーアウトされていて挿入できないときは(6955)
3 . Windows 10 で勝手にログアウトされないようにする(5270)
4 . Firefox でパスワードが保存されるページとされないページの違い(3970)
5 . awk で指定した n カラム目以降を出力する(3561)
2 . Word で数式がグレーアウトされていて挿入できないときは(6955)
3 . Windows 10 で勝手にログアウトされないようにする(5270)
4 . Firefox でパスワードが保存されるページとされないページの違い(3970)
5 . awk で指定した n カラム目以降を出力する(3561)
cles::blogについて
Referrers