raynstard #6224(2008/04/26 14:32 GMT) [ Other ] Rating0/0=0.00
二重起動を防止すればいいんですよね? かぶって隠れてしまったので投稿してみるテスト ロック取得のところをループさせればシリアルに処理できるようになります。 シェルの定石だと信じてるいつもの手法です。 # 最新のトピックもトップページに出るようになればよいですね。 # そしてPOSIXシェルのないことを知ったorz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
#!/usr/bin/sh # ロックファイル readonly LOCKFILE="${TMPDIR:-/var/tmp}/.SAMPLE.lock" ### echo "$$" if [ -e "${LOCKFILE}" ] ;then # すでにロックされてる echo "($$)" '後から起動~1:' "$@" exit 1 fi # ロック取得 set -o noclobber echo "$$" > "${LOCKFILE}" LOCKED_PID="$(cat "${LOCKFILE}")" if [ "$$" != "${LOCKED_PID}" ]; then echo "($$)" '後から起動~2:' "$@" exit 2 fi set +o noclobber # ロック取得完了 echo "($$)" 'ダミ~' sleep $1 echo '終了~' # 終わりロックファイルの削除 rm -f "${LOCKFILE}" exit 0 #EOF
Rating0/0=0.00-0+
[ reply ]
raynstard
#6224()
[
Other
]
Rating0/0=0.00
#!/usr/bin/sh # ロックファイル readonly LOCKFILE="${TMPDIR:-/var/tmp}/.SAMPLE.lock" ### echo "$$" if [ -e "${LOCKFILE}" ] ;then # すでにロックされてる echo "($$)" '後から起動~1:' "$@" exit 1 fi # ロック取得 set -o noclobber echo "$$" > "${LOCKFILE}" LOCKED_PID="$(cat "${LOCKFILE}")" if [ "$$" != "${LOCKED_PID}" ]; then echo "($$)" '後から起動~2:' "$@" exit 2 fi set +o noclobber # ロック取得完了 echo "($$)" 'ダミ~' sleep $1 echo '終了~' # 終わりロックファイルの削除 rm -f "${LOCKFILE}" exit 0 #EOFRating0/0=0.00-0+
[ reply ]