使用centos5 下面是我的 shell 脚本。我想防止它出现在多个实例中。但是如果我使用“kill -9”选项,它就不起作用了。我也怀疑它会在重启时起作用。 无论如何应用这个逻辑?它还可以处理 kill -9 或重启或任何导致脚本手动退出的信号?
[root@manage aaa]# cat script.sh
#!/bin/sh
set -e
scriptname=$(basename $0)
pidfile="/var/run/${scriptname}"
# lock it
exec 200>$pidfile
flock -n 200 || exit 1
pid=$$
echo $pid 1>&200
#### SCRIPT CODE
最佳答案
尝试使用 flock
命令。从手册页:
(
flock -n 9 || exit 1
# ... commands executed under lock ...
) 9>/var/lock/mylockfile
关于linux - 如何防止 shell 脚本的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25683787/