防止shell脚本被重复执行

复制代码
 1 #!/bin/bash
 2 LOCK_NAME="/tmp/my.lock"
 3 if ( set -o noclobber; echo "$$" > "$LOCK_NAME") 2> /dev/null; 
 4 then
 5 trap 'rm -f "$LOCK_NAME"; exit $?' INT TERM EXIT
 6 
 7 ### 开始正常流程
 8 
 9 sh /app/system.sh
10 sleep 30
11 ### 正常流程结束
12 
13 ### Removing lock
14 rm -f $LOCK_NAME
15 trap - INT TERM EXIT
16 else
17 echo "Failed to acquire lockfile: $LOCK_NAME." 
18 echo "Held by $(cat $LOCK_NAME)"
19 exit 1
20 fi
21 echo "Done."
22  
复制代码
posted @   Leonardo-li  阅读(796)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示