• linux使用flock文件锁


    使用linux flock 文件锁实现任务锁定,解决冲突

    格式:

    flock [-sxun][-w #] fd#

    flock [-sxon][-w #] file [-c] command

    flock --help
    flock (util-linux-ng 2.17.2)
    Usage: flock [-sxun][-w #] fd#
    flock [-sxon][-w #] file [-c] command...
    flock [-sxon][-w #] directory [-c] command...
    -s --shared Get a shared lock
    -x --exclusive Get an exclusive lock
    -u --unlock Remove a lock
    -n --nonblock Fail rather than wait
    -w --timeout Wait for a limited amount of time
    -o --close Close file descriptor before running command
    -c --command Run a single command string through the shell
    -h --help Display this text
    -V --version Display version

    -s, --shared: 获得一个共享锁
    -x, --exclusive: 获得一个独占锁
    -u, --unlock: 移除一个锁,通常是不需要的,脚本执行完会自动丢弃锁
    -n, --nonblock: 如果没有立即获得锁,直接失败而不是等待
    -w, --timeout: 如果没有立即获得锁,等待指定时间
    -o, --close: 在运行命令前关闭文件的描述符号。用于如果命令产生子进程时会不受锁的管控
    -c, --command: 在shell中运行一个单独的命令
    -h, --help 显示帮助
    -V, --version: 显示版本

    example:  crontab运用flock防止重复执行

    touch /tmp/my.lock  # 创建一个锁文件

    */30  * * * * loki flock -xn /tmp/my.lock -c 'sh 你的脚本文件.sh'   # -n 为非阻塞模式,会等一直等待程序执行完毕后再执行

    解决问题:

    防止某个脚本没有执行完毕的同时又另外的脚本再次启动

    参考资料:

    https://blog.csdn.net/fdipzone/article/details/38284009/

    https://www.cnblogs.com/wangxusummer/p/4933492.html

  • 相关阅读:
    Android入门:Button
    Android入门:部署时的常见错误
    to be
    Android入门:单元测试
    忘记 MySQL 的 root 帐号密码该怎么办
    Eclipse开发build path中jar包部署到应用中
    报告两个bug
    本站导引
    一个用Word做报表设计的报表系统windwardreports
    智能互联网
  • 原文地址:https://www.cnblogs.com/Cong0ks/p/9299097.html
Copyright © 2020-2023  润新知