国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 堆龙德庆县| 南华县| 五台县| 吴旗县| 洪湖市| 图木舒克市| 普兰县| 威远县| 巴彦淖尔市| 沙河市| 徐汇区| 建阳市| 湖南省| 阳泉市| 宁都县| 湘潭县| 淳化县| 叙永县| 左云县| 沙坪坝区| 饶平县| 东丽区| 晋宁县| 湾仔区| 荣昌县| 富宁县| 博客| 连山| 手游| 体育| 凤冈县| 扎鲁特旗| 平凉市| 高尔夫| 阿克陶县| 诸暨市| 霸州市| 永济市| 双鸭山市| 大庆市| 龙陵县|