检查已经执行的进程的更简单的方法是pidof命令.

if pidof -x "abc.sh" >/dev/null; then

echo "Process already running"

fi

或者,您的脚本在执行时创建一个PID文件.这是一个简单的练习,检查PID文件的存在以确定进程是否已经在运行.

#!/bin/bash

# abc.sh

mypidfile=/var/run/abc.sh.pid

# Could add check for existence of mypidfile here if interlock is

# needed in the shell script itself.

# Ensure PID file is removed on program exit.

trap "rm -f -- '$mypidfile'" EXIT

# Create a file with current PID to indicate that process is running.

echo $$> "$mypidfile"

...

更新:

现在,问题已经从脚本本身改变了.在这种情况下,我们希望总是看到至少有一个abc.sh运行.如果有多个abc.sh,那么我们知道进程仍在运行.我仍然建议使用pidof命令,如果进程已经运行,将返回2个PID.您可以使用grep过滤出当前的PID,在shell中循环,甚至还原到仅使用wc计数PID以检测多个进程.

以下是一个例子:

#!/bin/bash

for pid in $(pidof -x abc.sh); do

if [ $pid != $$]; then

echo "[$(date)] : abc.sh : Process is already running with PID $pid"

exit 1

fi

done

linux shell if运行,bash – shell脚本执行检查是否已经在运行相关推荐

  1. shell bash脚本_如何在Windows 10上创建和运行Bash Shell脚本

    shell bash脚本 With the arrival of Windows 10's Bash shell, you can now create and run Bash shell scri ...

  2. Linux编程 3 (初识bash shell与man查看手册)

    一.初识bash shell 1.1 启动 shell   GNU bash shell 能提供对Linux系统的交互式访问.通常是在用户登录终端时启动,登录时系统启动shell依赖于用户账户的配置. ...

  3. linux脚本执行过程中被挂起,Linux学习笔记(八)——脚本执行的过程控制

    一.脚本执行过程中的控制 之前的内容中,运行编写好的脚本时都是在命令行上直接确定运行的,并且运行的脚本是实时的,这并不是脚本唯一的运行方式,下面的内容是脚本的其他运行方式.例如在Linux系统中如何控 ...

  4. linux执行windows创建的脚本,如何在Windows 10上创建和运行Bash Shell脚本 | MOS86

    随着Windows 10的到来您还可以将Bash命令合并到Windows批处理文件或PowerShell脚本中. 如果你知道你是什么Windows和UNIX使用不同的行尾字符,Windows文件系统可 ...

  5. linux shell 一行 for,BASH shell脚本回显到同一行输出

    我有一个简单的BASH shell脚本,它检查curl命令的HTTP响应代码. 逻辑很好,但我坚持"简单地"打印出"输出". 我正在使用GNU bash,版本3 ...

  6. linux系统下的bash shell指令有哪些?对bash命令的汇总和小结

    一.参考来源 Windows系统的cmd命令哪些?具体怎么用?cmd命令汇总,dos命令小结?和linux命令的对比? 下面这个网站,强烈推荐,一旦遇到自己不懂的linux命令,直接去这个开源站检索即 ...

  7. linux shell 函数库,bash shell 函数库

    bash shell 函数库ash由自由软件基金会,Inc.版权所有(C) 1989-2011. 语法 bash [options] [file] 描述 Bash是一种与sh兼容的命令语言解释器,它执 ...

  8. linux shell 数组对比,bash shell之数组使用(牛逼篇)

    这次写脚本时用到了bash shell数组,当初做法是配置文件里面写成数组形式A=(element1 element2 element3 .... element4),然后一个脚本读取这个配置文件,于 ...

  9. Linux命令行–更多bash shell命令(转)

    4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支 ...

最新文章

  1. 【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级
  2. React.js 小书 Lesson15 - 实战分析:评论功能(二)
  3. 前端实现炫酷动效_20个网页动效设计的炫酷神器
  4. 实现二分归并排序算法_如何实现归并排序?
  5. C语言学习之 数组,指针,字符串. (一)
  6. lp地址为什么位_为什么内存空间分配总是以64K为边界?
  7. 关于linux开机自启
  8. python进入上下文管理器_浅谈Python中with(上下文管理器)的用法
  9. 10个技巧帮你搞定IE 6
  10. 稀缺-我们是如何陷入贫穷与忙碌的 读后感
  11. windows XP系统内核文件分析(全)
  12. Flash网页游戏辅助工具制作简析
  13. MPU6050的数据获取、分析与处理
  14. 以太坊搭建私链(4)——新建账户、查看账户信息、转账、挖矿、添加节点等操作
  15. 12306 验证码代码分析
  16. android 获取指纹图像,用于获取指纹图像的方法及指纹感测系统与流程
  17. windows许可证即将过期 win10的解决办法
  18. [讨论] 通用(任何android机型)Root教程(完整版!附砖机自救方法)
  19. python opencv resize函数_OpenCV尺寸调整函数resize
  20. 机器学习必备知识点 之 先验概率和后验概率

热门文章

  1. 后勤管理系统_教育信息化2.0,2019年校园智慧后勤管理系统五大品牌
  2. c语言两种排序方法的组合,排列和组合算法的实现方法_C语言经典案例
  3. 计算机网络安装建设厂家,互联网工厂设备与安装总结报告(26页)-原创力文档...
  4. tensorboard使用_tensorboard查看训练曲线
  5. 泊松分布的分布函数_常见概率分布汇总
  6. 如果项目中如何添加或卸载某些组件
  7. Linux 端口占用解决
  8. Python桌面图形程序美化的方法论
  9. bootstrap中表格大小设置_bootstrap 设置table - td宽度问题
  10. spring和mybatis整合:使用xml方式