@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

シェルスクリプト二重起動防止

1
投稿者投稿内容
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2006-06-19 12:46
お世話になります。

bshで教えてください。

二重起動を防止するようなシェルスクリプトを作成する必要があるのですが
サンプル的なもの(これを使っておけば問題なし)は
あるのでしょうか?

もしあれば教えていただければと思います。
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2006-06-19 13:09
こんにちは

cgiスクリプトと同じ要領でlockを使用すればいいのでは?

mkdirやlnを使用すればシェルでも同様なことが出来ます。

mkdir /tmp/shell_lock
echo $? <<$?が0の時(正常終了時)はロック成功(逆に1:の時はロック状態)

処理の終了時に 削除することをお忘れなく...

エラーメッセージが気になるときは
mkdir /tmp/shell_lock 2>/dev/null

[ メッセージ編集済み 編集者: 未記入 編集日時 2006-06-19 13:11 ]
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2006-06-19 21:39
ご回答ありがとうございます。

CTRL+Cで強制終了した場合、ロックディレクトリ(ファイル)が残ってしまいますが
これはどのように制御できますでしょうか?

CTRL+Cを禁止する?
or
ロックディレクトリの日付を参照する???
うっちー
常連さん
会議室デビュー日: 2004/08/12
投稿数: 32
投稿日時: 2006-06-19 22:39
こんばんわ。
trap を使用すれば解決すると思います。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2006-06-29 12:54
ps | grep で、一個以上の同名プロセスが無かったら起動可能
あれば、起動できないように if 文で制御。
1

スキルアップ/キャリアアップ(JOB@IT)