以下是一个使用bash脚本实现只允许一个实例运行的示例:
#!/bin/bash
# 确认只有一个实例在运行的文件锁路径
LOCK_FILE="/tmp/script.lock"
# 检查锁文件是否存在
if [ -e $LOCK_FILE ]; then
echo "脚本已经在运行中..."
exit 1
fi
# 创建锁文件
touch $LOCK_FILE
# 在脚本结束时删除锁文件
cleanup() {
rm $LOCK_FILE
exit
}
trap cleanup EXIT
# 在这里添加你的脚本逻辑
# 例如,你可以在这里执行需要排他访问的任务
# 模拟脚本运行时间
sleep 10
这个脚本首先检查一个指定的锁文件是否存在。如果存在,就表示另一个脚本实例正在运行,因此脚本将退出。如果锁文件不存在,脚本将创建一个锁文件,并在脚本结束时删除它,以确保其他实例可以运行。
你可以在脚本的# 在这里添加你的脚本逻辑
部分添加你需要的脚本逻辑。在这个示例中,我使用了sleep 10
来模拟脚本的运行时间。你可以根据需要修改这部分代码。