`

Shell中进行文件加锁,达到互斥

 
阅读更多

复杂锁shell代码:

 LOCKFILE="/tmp/lock"
if [ -f "$LOCKFILE" ]
then
 pid=`cat $LOCKFILE`
 [ -n "$pid" ] && ps -p $pid | grep $pid >/dev/null 
 [ $? -eq 0 ] && echo "script is running..." && exit 1
fi
 echo $$ > "$LOCKFILE"

分享到:
评论

相关推荐

    PHP后台循环锁定文件.zip_PHP后台循环_php文件锁定_shell_锁定

    在shell脚本中,也可以利用` flock`命令进行文件锁定。 再者,shell锁定是一种在Linux或Unix系统中通过shell脚本来实现文件锁定的方法。通常,shell脚本会调用如`flock`命令或`mkfifo`(创建命名管道)配合`cat`等...

    操作系统实验

    (2)进程的控制:在程序中使用系统调用lockf()来给每一个进程加锁,实现进程之间的互斥。 (3)进程通信:①软中断通信;②在程序中使用实例signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG_IGN)进行通信操作,观察执行...

    自己整理的操作系统基础知识

    操作系统是计算机系统的核心组成部分,它...互斥可以通过加锁或信号量实现,而同步则常用信号量、消息传递或共享存储区等方式。 这些基本概念构成了操作系统的基础,理解和掌握它们对于理解和使用操作系统至关重要。

    计算机操作系统3套期末考试题及答案.pdf

    - 文件系统是操作系统中对数据进行管理的部分,它负责组织、存储和检索文件,提供诸如创建、删除、读取和写入等操作。 2. **系统调用**: - 系统调用是操作系统提供给程序员的接口,通过它可以访问操作系统提供的...

    《计算机操作系统》期末复习指导

    任务:把存储、检索、共享和保护文件的手段,提供给操作系统本身和用户,以达到方便用户和提高资源利用率的目的。 功能: ---分配与管理外存 ---提供合适的存储方法 ---文件共享、保护,解决...

    Unix编程常见问题解答

    可以使用`fcntl()`函数的`F_SETLK`、`F_SETLKW`、`F_GETLK`等选项来对文件加锁,`F_SETLK`是非阻塞的,`F_SETLKW`是阻塞的,而`F_GETLK`用于查询文件上的锁状态。文件锁可以防止多个进程同时修改同一个文件,从而...

    操作系统第一次与第二次实验报告.doc

    在实验一中,主要目标是熟悉Linux环境,包括使用Shell命令和vi编辑器。实验内容包括: 1. 使用`ls`、`cat`、`cd`等命令操作文件和目录。`ls`列出目录内容,`cat`用于查看文件内容,`cd`用来切换目录。通过`cat`可以...

    实验一-进程通信——管道和信号实验报告.doc

    4. **了解Unix系统中进程通信的基本原理**:掌握进程间如何通过管道和信号机制进行通信。 #### 实验预备知识 为了顺利完成实验,学生需要预先了解以下知识点: - **进程的概念**:进程是程序的一次执行过程,每个...

    linux操作系统下c语言编程入门

    - `pthread_mutex_lock()`/`pthread_mutex_unlock()`:互斥锁加锁与解锁。 ##### 8. Linux程序设计入门—网络编程 - 网络编程是构建分布式应用的基础。 - 基础概念: - Socket:网络编程的主要接口。 - TCP/IP...

    Linux下关于网络编程

    - **4.5.3 System V的咨询锁定**:System V提供的锁定机制允许进程对文件的某一部分进行加锁。 - **4.5.4 BSD的咨询式锁定**:BSD风格的锁定机制与System V不同,提供了更多的灵活性。 - **4.5.5 前面两种锁定方式的...

Global site tag (gtag.js) - Google Analytics