linux 使用 lockf命令防止脚本重复运行
之前服务器的脚本,迁移至一台新的机器上,运行脚本,提示报错信息:
-bash: /usr/bin/lockf: 没有那个文件或目录 或
-bash: /usr/bin/lockf: no such file or directory
需要安装lockf
Lockf 安裝步骤
下载:
wget http://stuffivelearned.org/lib/exe/fetch.php?media=programming:c:lockf_linux.tar.gz
mv fetch.php?media=programming:c:lockf_linux.tar.gz lockf_linux.tar.gz
tar xvf lockf_linux.tar.gz
cd lockf
make && make install # 完成即可. (會安裝到 /usr/bin/lockf)
使用方法:
lockf -s -t 0 /tmp/sleep.lock /usr/bin/php sleep.php
lockf -s -t 0 /tmp/sleep.lock /usr/bin/php sleep.php # 这个程序不会在次执行.
lockf 参数:
- -k: 一直等到程序结束才执行.
- -s: silent, 不要发出任何信息, 即使拿不到 lock.
- -t seconds: 要等多久 timeout, 如果 timout 程序不会执行.