Shell脚本检查目录中是否有正在运行的进程

时间:2016-08-15 10:49:03

标签: bash shell sh

我有一个脚本会自动运行CFD模型,其中包含许多不同目录的案例。然后我想检查目录是否已经在运行进程,脚本将警告用户并且不在该目录中执行。

那么有什么方法可以检查它吗?

请帮助我!

1 个答案:

答案 0 :(得分:0)

最佳实践方法是让每个要阻止的脚本同时运行以获取目录中的锁。

假设您的操作系统是Linux,flock是适合该工作的工具:

#!/bin/bash

# open lockfile in current directory
# if operating on a directory given as an argument, update appropriately
exec 99>.lock

# grab a lock
flock -x 99 || {
  echo "Could not grab lock" >&2
  exit 1
}

# do your other calculations here

另见: