青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網

17站長網 首頁 腳本 linux shell 查看內容

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

2022-12-8 15:45| 查看: 2714 |來源: 互聯網

例如,要求腳本只能順序訪問某個資源,例如磁盤文件等,就可以參考下面的實現。#!/bin/bash## file locking using bash.# ver 0.1.6## author : malundao ( malundao@sina.com )# date   : 2011-08-31&nbs

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

#!/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         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                 if [ -n "$pid" ]; then
                        if [ -e /proc/$pid ]; then
                                cd $oldpath
                                return 1 # Lock is taken by others
                        else
                                #unsafe: rm -f lock.$pid
                                echo WARN: please delete stale lock.pid by HAND.
                                return 2
                        fi
                else
                        # sleep some seconds,then back to 'while' loop
                        # 11 is a prime number, $$ as a random. 
                        echo sleep $(( $$ % 11 ))
                        sleep $(( $$ % 11 ))
                fi
        done
        # 'ln -s' is an atom op.
        ln -s lock.$$ lock.pid >/dev/null 2>&1
        if [ $? -eq 0 ]; then
                cd $oldpath
                return 0 # We got the lock
        else
                [ -e lock.pid ] || echo WARN: please delete hanging lock.pid by HAND.
                cd $oldpath
                return 3 # Lock is probably taken by others.
        fi
}
putlock () {
    oldpath=`pwd`
    cd $LOCKPATH && rm -f lock.$$ lock.pid
    cd $oldpath
}
## test
shflock_cleanhook() {
    echo i\'m a hook.
}
while true; do
    while ! getlock; do
        #echo wait a second...
        sleep 1
    done
    echo \[$$\] `date` ,now hold lock for 3 seconds...
    sleep 3
    #echo putlock
    putlock
    sleep 1 # yield
done

防止腳本多次執行(一)

while [ `ps x |grep -v grep|grep filename.sh|wc -l` -gt 0 ];
do
        exit
done

把內容放在腳本最上面

filename.sh 替換為你要監控的腳本名字
還有一種方法是 死循環 可以根據不同的環境,不同的腳本內容,使用的方法也同步,方法很簡單日后在寫出來

本文最后更新于 2022-12-8 15:45,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 最近中文字幕mv手机免费高清 | 日日噜噜夜夜狠狠扒开双腿 | 一一本之道高清视频在线观看中文字幕 | 嫩草影院地址一二三 | 国产精品久久久久无码AV色戒 | 国产女合集第六部 | 真实处破女全过程完免费观看 | 2020最新无码国产在线视频 | 一级做a爰片久久毛片苍井优 | 影音先锋色小姐 | 肉肉描写很细致的黄文 | 久草精品在线 | 国产精品福利片 | 看黄色片子 | 99视频国产在线 | 把内衣脱了把奶露出来 | 亚洲 欧美 日韩 卡通 另类 | 人驴交f ee欧美 | 小小水蜜桃视频高清在线播放 | 国产AV天堂亚洲AV麻豆 | 亲胸揉胸膜下刺激视频网站APP | 无人在线观看免费高清视频播放 | 1788vv视频| 给我免费播放片bd国语 | 天堂视频在线观看免费完整版 | 孕妇泬出白浆18P | 内射一区二区精品视频在线观看 | 美女医生深夜在家裸睡惨死 | 草莓视频在线看免费高清观看 | 欧美精品AV一区二区无码 | 扒开美女的内衣亲吻漫画 | 色橹橹欧美在线观看视频高 | 2021扫黑风暴在线观看免费完整版 | 吃春药后的女教师 | 色婷婷粉嫩AV精品综合在线 | 欧美午夜理伦三级在线观看 | 手机看片国产免费 | 久久精品亚洲牛牛影视 | 国产1769一七六九视频在线 | 99热这里只有 精品 99热这里只就有精品22 | 国产国拍精品AV在线观看 |