本文共 979 字,大约阅读时间需要 3 分钟。
防止进程被重复运行是开发和维护脚本时非常重要的一环。以下是一个基于进程锁机制的脚本示例,帮助你确保脚本只在唯一的进程中运行。
##脚本内容
#!/bin/bashlock_file=/tmp/echo1.lock# 判断进程是否正在运行if [ -f $lock_file ]; then pid=`cat $lock_file` ps $pid > /dev/null if [ $? -eq 0 ]; then echo "Script1 is running..." exit 1 fifi# 创建锁echo $$ > $lock_fileecho "lock1 begin..."sleep 500echo "lock1 end"# 释放锁rm -rf $lock_file
/tmp/echo1.lock
的锁文件,用于记录当前进程的唯一标识符(PID)。ps
命令验证该进程是否正在运行。"Script1 is running..."
并立即退出,防止重复运行。"lock1 begin..."
,随后进入睡眠以避免意外中断。"lock1 end"
,完成任务。nohup
指令或将脚本拷贝到screen
或tmux
中运行。通过以上方法,你可以有效管理脚本运行的唯一性,避免进程重复运行带来的潜在问题。
转载地址:http://jjgcz.baihongyu.com/