国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

防止shell腳本重復執行的代碼

2019-10-26 18:35:10
字體:
來源:轉載
供稿:網友

例如,要求腳本只能順序訪問某個資源,例如磁盤文件等,就可以參考下面的實現。

代碼如下:
#!/bin/bash
#
# file locking using bash.
# ver 0.1.6
#
# author : malundao ( malundao@sina.com )
# date   : 2011-08-31  
# ref    : http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2005-09/0472.html
#
# note:
#   shflock_cleanhook() is a user defined function to clean up user-specific sth.
#
# /path/to/lock/. note; directory, not a file.
# should be modified
LOCKPATH="/tmp"
cleanup() {
        shflock_cleanhook
        cd $LOCKPATH
        [ -e lock.pid ] || exit
        read pid >/dev/null 2>&1 <lock.pid
        if [ -n "$pid" ]; then
            if [ "$pid" == "$$" ]; then
                rm -f lock.$pid
                rm -f lock.pid
                exit
            fi 
        fi 
        exit
}
#  trap EXIT ?
trap 'cleanup' HUP INT TERM
getlock() {
        oldpath=`pwd`
        cd $LOCKPATH
        while
                echo $$ > lock.$$
                [ -e lock.pid ]
        do
                rm lock.$$
                read pid >/dev/null 2>&1 <lock.pid
                if [ -n "$pid" ]; then
                        if [ -e /proc/$pid ]; then
                                cd $oldpath
                                return 1 # Lock is taken by others
                        else

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 慈溪市| 沈阳市| 藁城市| 福海县| 桃园县| 南澳县| 图片| 汝城县| 和政县| 巴东县| 台中市| 水城县| 东源县| 郑州市| 衡阳市| 安阳市| 宜兰市| 广水市| 南汇区| 鄂伦春自治旗| 淳化县| 菏泽市| 南阳市| 北碚区| 宁强县| 贡山| 石台县| 新密市| 贵溪市| 宜良县| 平阳县| 牡丹江市| 义乌市| 宿州市| 彩票| 襄城县| 民丰县| 沾化县| 曲靖市| 宁明县| 延庆县|