shell 脚本防重复运行

#检查PID文件是否存在,以及对应的进程是否还在运行
is_already_running(){
    #检查文件是否存在
    if [ ! -f $pid_file ];then
        log_ "pid file does not exist"
        return 0
    fi
    #文件存在,判断记录的进程ID是否还存活
    pid=`cat $pid_file | head -n 1`
    log_ "pid="$pid
    if [ $pid == "" ];then
        log_ "blank pid file"
        rm -rf $pid_file
        return 0
    fi
    kill -0 $pid 2>&1 >/dev/null
    result=$?
    log_ "result of kill -0 "$pid" = "$result
    if [ $result -eq 0 ];then        
        return 1
    fi
    return 0
}


main(){
    #检查是否已经有在跑,有的话直接退掉
    is_already_running 
    result=$?
    if [ $result -eq 1 ];then
        log_ "service already running, exiting."
        exit 0
    fi
    log_ "starting service..."
    echo $$ >$pid_file
    #干点其他的
}