Comment detail

二重起動の禁止とコマンドライン引数の取得 (Nested Flatten)
二重起動を防止すればいいんですよね?
かぶって隠れてしまったので投稿してみるテスト
ロック取得のところをループさせればシリアルに処理できるようになります。
シェルの定石だと信じてるいつもの手法です。
# 最新のトピックもトップページに出るようになればよいですね。
# そして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

Index

Feed

Other

Link

Pathtraq

loading...