zoukankan      html  css  js  c++  java
  • 进程锁

    使用pid文件限制重复启动进程

    • 说明:
    下方脚本为判断脚本是否正在运行,如正在运行就退出脚本,如未启动就可以正常使用脚本。
    
    # 判断根据
    将脚本运行时的pid号放入一个文件中,如文件存在,再进行则判断文件内容,文件不存在则可以正常运行脚本。
    针对文件存在,但防止其他内容写入文件,不与实际内容相符,所以进行内容判断,判断文件内容中的pid号
    否存在,不存在说明,内容为恶意写入,可以不予理会,继续执行脚本。存在则说明脚本正在被执行。
    
    # ps 进程id(后续脚本判断命令说明)
    [root@docker01 script]# ps 6450
       PID TTY      STAT   TIME COMMAND
      6450 ?        Ss     0:00 /usr/sbin/sshd -D
    [root@docker01 script]# echo $?            # pid存在则返回0
    0
    [root@docker01 script]# ps 111             # pid不存在则返回1
       PID TTY      STAT   TIME COMMAND
    [root@docker01 script]# echo $?
    1
    
    
    • 脚本展示
    [root@egon day10]# cat proc.sh 
    #!/bin/bash
    pidfile='/tmp/proc.pid'
    
    if [ -f $pidfile ];then
        pid=`cat $pidfile`
        ps $pid &>/dev/null
        [ $? -eq 0 ] && echo "脚本正在运行..." && exit 1
    fi
    
    
    
    echo "$$" > $pidfile
    
    echo "脚本正在运行。。。"
    sleep 500
    echo "脚本运行完毕。。。"
    
    rm -rf $pidfile
    
  • 相关阅读:
    Hadoop 0.23.1 Release Notes
    maven编译参数
    Hadoop快速入门
    HTML Parser HTML Parser
    EasyHadoop v1.0
    Hudson+Maven+SVN 快速搭建持续集成环境
    对技术要有足够的尊重和敬畏
    hudson设置
    python之强大的日志模块 竹叶青 的专栏 博客频道 CSDN.NET
    PHP学习之七:错误控制运算符
  • 原文地址:https://www.cnblogs.com/tcy1/p/13617421.html
Copyright © 2011-2022 走看看