シェルの2重起動を防止する方法

シェルの二重起動を防止するのにはどうしたら良いのか調べていて、pidofコマンドを使えば出来ること分かったので、備忘録として残しておく。
以下はサンプル。2重起動の動作確認をするため、わざとsleepさせてます。これを"./test.sh &"みたいにして呼び出して、もう一度"./test.sh"を呼び出せば正しく動いているか確認出来る。

#!/bin/bash                                                                                                             

PNUM=$(pidof -x $0)
if [ "$(echo $PNUM | awk '{print NF}')" != "1" ]; then
    echo "2重起動です"
    exit 1
fi

#30秒間スリープ
sleep 30

以下は実行した結果。

junya@ubuntu:~$ ./test.sh &
[1] 3159
junya@ubuntu:~$ ps
  PID TTY          TIME CMD
 2993 pts/2    00:00:00 bash
 3159 pts/2    00:00:00 test.sh
 3164 pts/2    00:00:00 sleep
 3167 pts/2    00:00:00 ps
junya@ubuntu:~$ ./test.sh
2重起動です
junya@ubuntu:~$ echo $?
1
junya@ubuntu:~$ ./test.sh
2重起動です
junya@ubuntu:~$ echo $?
1
junya@ubuntu:~$ ps
  PID TTY          TIME CMD
 2993 pts/2    00:00:00 bash
 3159 pts/2    00:00:00 test.sh
 3164 pts/2    00:00:00 sleep
 3179 pts/2    00:00:00 ps

参考:http://d.hatena.ne.jp/shohu33/20090722/1248250178