添加URL
分享

即多次运行脚本,会导致同一脚本重复启动的问题,但是此时业务要求同一时刻只能有一个同样的脚本在运行。

解决方法:

将执行脚本的进程pid保存在某个文件中,每次执行该脚本时,都先去判断该文件是否存在,如果不存在,则 利用 $$ 获取当前运行的脚本的进程号 保存在指定文件中;如果存在则执行kill该文件中的进程pid号,并删除该pid文件。

脚本tim.sh改写如下:

#!/bin/bash
pidpath=/tmp/tim.pid      #定义pid文件
if [ -f "$pidpath" ]    #如果pid文件存在,则执行then后面的命令
        kill `cat $pidpath`>/dev/null 2>&1 #杀掉与前一个进程对应的进程,其中>/dev/null 2>&1表示:标准输出和标准错误都重定向到了/dev/null
        rm -f $pidpath  #删除pid文件
echo $$ >$pidpath #将当前Shell进程号记录到pid文件中
sleep 300

此时,我们多次执行tim.sh脚本,效果如下:


可以看到,不管我们执行多少次sh tim.sh &,只存在一个脚本tim.sh对应的进程号。

#!/bin/bash## file locking using bash.# ver 0.1.6## author : malundao ( malundao@sina.com )# date ... 来自: zqt520的专栏 shell脚本的执行可能会出现接口拉取网络较慢以及拉取文件过大等问题导致脚本执行时间较长。这种情况下如果放置crontab中执行可能导致上个周期脚本未结束,但是下个周期又开始执行该脚本,导致了数据不一... 来自: huangzx3的博客 参考:Shell脚本避免重复执行的方法https://m.jb51.net/article/60285.htmShell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数h... 来自: yoshubom的专栏 同时存在多个运行实例对数据进行修改时候会造成很多令人困惑的问题。我们可以在脚本执行开始前创建一个临时文件,如果此文件存在,就表示系统中存在一个运行实例,每个实例在退出之前把临时文件删除,保证新的实例可... 来自: carbon06的博客 例如,要求脚本只能顺序访问某个资源,例如磁盘文件等,就可以参考下面的实现。复制代码 代码如下:#!/bin/bash## file locking using bash.# ver 0.1.6## a... 来自: haoyoubi的博客 脚本重复运行问题定时任务脚本的另外一个常见问题是脚本重复运行的问题。比如,一个脚本被设置为每 5 分钟运行一次。若某一次该脚本的运行无法在 5 分钟内结束的话,定时任务服务仍然会新启一个进程来执行该脚... ---让程序不能被多次运行---问题(1)因为守护进程是长时间运行而不退出,因此./a.out执行一次就有一个进程,执行多次就有多个进程。(2)这样并不是我们想要的。我们守护进程一般都是服务器,服务器... 来自: QL的博客 在系统启动的时候,执行了一个脚本,用来执行多个程序,但是很奇怪的是其中有一个程序被多次执行?!这是个什么情况啊?有人遇到过吗?脚本下面贴出来 #/bin/sh ifconfig eth0 192.*. 描述:写了一个检测脚本 运行ffmpeg程序  当程序运行结束后 继续运行该ffmpeg程序。    思路:起初想要持续检测正在运行的进程,如果进程正在进行就什么也不做,该进程结束就重启该进程。写的脚... 来自: cfqcfqcfqcfqcfq的博客 1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估... 来自: 微信公众号:猴子聊人物 1. 前言欢迎阅读 Spring Security 实战干货[1] 系列文章 。在上一篇 基于配置的接口角色访问控制[2] 我们讲解了如何通过 javaConfig 的方式配置接口的角色访问控制。其实... 来自: 码农小胖哥 前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50行尽管我有多年... 来自: Python之禅的专栏 你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善前言这一期不算《吊打面试官》... 来自: 敖丙 知乎高赞:中国有什么拿得出手的开源软件产品?在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?”事实上,还不少呢~本人于2019.7.6进行了较为全面的... 来自: 大白技术控 - 大白技术Bravo Yeung ##shell执行脚本单实例互斥问题比如说有一个周期性(cron)备份mysql的脚本,或者rsync脚本,如果出现意外,运行时间过长,很有可能下一个备份周期已经开始了,当前周期的脚本却还没有运行完,... 来自: jsyxcjw的专栏 在编写shell脚本通过crontab定时任务启动时,如果shell脚本执行时间超过了,crontab拉起脚本的时间间隔,这个时候可能就会出现同一个脚本同时启动多次的现象。这个时候可能会导致采集的数据... 来自: 为无为,事无事,味无味。 最近项目中的一个计数程序,因为会计数,所以只能有一个进程在运行,否则计数速度会加快,而刚好又是一个守护进程。Steven的《unix环境高级编程》的守护进程中就有讲,单实例进程。这种监控有很多,如果放... 来自: misslio的专栏 再开发应用程序或者服务器的时候,经常会用到,只启动一个程序,以后再启动的时候,检查是否已经启动,若启动则退出。并且,同时也有命令实现,向已有的程序发信号量,来实现reload,stop。等功能。其实很... 来自: ec06cumt的专栏 作者 |胡书敏责编 | 刘静出品 | CSDN(ID:CSDNnews)本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。... 来自: CSDN资讯 作者:肖强,来自:51CTO技术栈“ 网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验...... 来自: 架构师小秘圈 引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。准备工作爬... 来自: 我本将心向明月,奈何明月照沟渠 一、数据库简介数据库(Database,DB)是按照数据结构来组织,存储和管理数据的仓库。典型特征:数据的结构化、数据间的共享、减少数据的冗余度,数据的独立性。关系型数据库:使用关系模型把数据组织到数... 来自: Hudie.的博客 方法一foriin{1..10};doecho"Hello,World";done方法二在~/.bashrc文件中创建一个run函数(函数名字随意):functionrun(){number=$1sh... 来自: 六炅的专栏 这一篇博客会介绍“!”符号在不同情境下的使用1、重复执行先前命令2、逻辑非3、作为shell内部变量4、变量的间接引用一、重复执行先前命令: !        在bash中,为了重复执行先前命令,可以... 来自: huayangshiboqi的博客 点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...... 来自: 爱开发 一、准备工作u盘,电脑一台,win10原版镜像(msdn官网)二、下载wepe工具箱极力推荐微pe(微pe官方下载)下载64位的win10 pe,使用工具箱制作启动U盘打开软件,选择安装到U盘(按照操... 来自: weixin_41964258的博客 由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,... 来自: 帅地 大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频... 来自: 帅地 很早就很想写这个,今天终于写完了。游戏截图:编译环境: VS2017游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言... 来自: 张宜强的博客 ArrayList支持所有的可选操作(因为一个UnsupportedOperationException异常都没有捕获到),所以要想拥有完备的功能,还是得使用ArrayList啊。Arrays$Arr... 来自: anlian523的博客 我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。表砍我。。。当时买mac的... 来自: qq_45036710的博客 小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm... 来自: qq_43764365的博客 概述会话技术:会话:一次会话中包含多次请求和响应一次会话:浏览器第一次给服务器发送资源请求,会话建立,直到有一方断开为止功能:在一次会话的范围内的多次请求间,共享数据方式:客户端会话技术:Cookie... 来自: miles-zh 前奏:今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。以下就是他的简历和面试情况。基本情况:专业技能:1、 熟悉Sping了解SpringMVC、SpringBoo... 来自: HarderXin的专栏 点击“技术领导力”关注∆每天早上8:30推送作者|Mr.K 编辑| Emma来源|技术领导力(ID:jishulingdaoli)前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者... 来自: 技术领导力 Nginx 软件层面加强Nginx性能优化的面试问答和解决方案 去年我去爱卡汽车面试PHP,一轮和二轮面的都不错,在三轮面到Nginx的时候很多问题当时不知道怎么回答,确实没有深入学习过,花了一段时间... 「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。扫描上方二维码进入 CSDN App 可以收听御姐萌妹 Sty... 导语:腾讯计费是孵化于支撑腾讯内部业务千亿级营收的互联网计费平台,在如此庞大的业务体量下,腾讯计费要支撑业务的快速增长,同时还要保证每笔交易不错账。采用最终一致性或离线补...... CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是... 作者 |曾建责编 | 郭芮出品 | CSDN(ID:CSDNnews)在项目和业务的开发中,我们难免要经常使用线程来进行业务处理,使用线程可以保证我们的业务在相互处理之间可以保证原子性...... 2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人... 很遗憾,这个鼠年春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 显示当前目录 su:Swith user ... 文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑...  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 有时候,严格的限制条件有可能反倒是解题... 相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有... 其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...... Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语... 在第2章节中,我们介绍了如何通过Spring Boot来实现HTTP接口,以及围绕HTTP接口相关的单元测试、文档生成等实用技能。但是,这些内容还不足以帮助我们构建一个动态应用的服务端程序。不论我们是... By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...... Java基础知识点梳理 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法... 记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程... 哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈... 你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能... Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以We... Spring1.Spring是什么?有什么好处?2.IOC是什么?有什么好处?具体过程?3.DI是什么?4.IOC和DI的关系?5.bean标签的属性有哪些?6.IOC创建对象有哪几种方式?7.Spr... 本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降... 一直想写一些东西记录自己的成长,以前就是想了又想,不如直接行动起来。 全国人民都盼望着武汉疫情的拐点,我想每个人都没有想到疫情会传播如此的迅速。如果用大数据统计一下医务人员、捐赠物运输车辆、医用... 尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web...