一個思路是在script初期檢測系統中是否存在同名進程。spa
if [ `ps -ef | grep "test.sh" | grep -v "grep" | wc -l` -gt 2 ] then echo "This script is already running. Exit." else while true do echo "I am running" sleep 5 done fi
若是是第一次運行,那麼首行語句檢測到的同名進程會有兩個:第一個是啓動這個script的進程,第二個是反引號內的命令。code