Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – lockfile-create在bash脚本中不起作用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

这可能是一个非常简单的问题,但我不明白为什么它会这样.当我调用 lockfile-create --use-pid --retry 0 /tmp/my_lock_file 它返回0,下次运行时会返回一些其他代码(4),因为它已经创建了锁文件.但是当我将相同的代码包装在bash脚本文件中时,它总是返回0作为退出代码.有人知道为什么它不起作用? 更新:完成bash文件内容 #! /bin/bash
这可能是一个非常简单的问题,但我不明白为什么它会这样.当我调用
lockfile-create --use-pid --retry 0 /tmp/my_lock_file

它返回0,下次运行时会返回一些其他@L_874_2@(4),因为它已经创建了锁文件.但是当我将相同的@L_874_2@包装在bash脚本文件中时,它总是返回0作为退出@L_874_2@.有人知道为什么它不起作用?

更新:完成bash文件内容

#! /bin/bash

LOCK=alert

lockfile-create --use-pid --retry 0 $LOCK
LOCK_CREATED=$?
echo "Lock file creation status $LOCK_CREATED"

这就是我运行它的方式./alert.sh.

解决方法

是因为当您再次执行脚本时,执行脚本的进程的PID已更改.因此,– use-pid标志会导致lockfile-create认为需要覆盖锁定文件.

根据您的使用情况,您可能希望摆脱–user-pid标志.但是,在这种情况下,您需要确保自己清理锁定文件.

从man lockfile-create引用:

-p,--use-pid
       Write the parent process id (PPID) to the lockfile whenever a lock‐
       file  is created,and use that pid when checking a lock's validity.
       See the lockfile_create(3)  manpage  for  more  information.   This
       option  applies  to lockfile-create and lockfile-check.  NOTE: this
       option will not work correctly between machines sharing a  filesys‐
       tem.

您可以通过尝试在同一脚本中再次创建日志文件来验证您正在观察的行为:

#! /bin/bash
LOCK=alert

lockfile-create --use-pid --retry 0 $LOCK
LOCK_CREATED=$?
echo "Lock file creation status $LOCK_CREATED"
lockfile-create --use-pid --retry 0 $LOCK
LOCK_CREATED=$?
echo "Lock file creation status $LOCK_CREATED"

大佬总结

以上是大佬教程为你收集整理的linux – lockfile-create在bash脚本中不起作用全部内容,希望文章能够帮你解决linux – lockfile-create在bash脚本中不起作用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。