在什么情况下Linux系统会运行两个crond 守护进程
今天服务器出现问题,发现定时脚本同时运行两遍,ps查看crond进程发现有两个进程在运行,我在自己电脑上面想重现这样的情况都没办法做到。...
今天服务器出现问题,发现定时脚本同时运行两遍,ps查看crond进程发现有两个进程在运行,我在自己电脑上面想重现这样的情况都没办法做到。
展开
2个回答
展开全部
正常情况下crond是通过/etc/init.d/crond 脚本启动的,他会检查两个文件
如果/var/lock/subsys/crond存在说明之前已经有一个crond在运行,那么它会再检查
/var/run/crond.pid,如果该pid代表的进程正在运行,crond 脚本自行退出
反之如果这两个文件中的任何一个被删除或者pid对应进程已经不存在那么它就认为crond没有运行,crond会正常启动,并且生成新的标示文件,这样可以阻止crond再次运行,以达到只有一个crond运行的目的,当然在它正常关闭的情况下,这两个标志文件会被自动删除。
你的情况应该是在前一个crond运行后,要么有人手动直接运行 daemon crond , 要么是这两个标志文件之一被删除或者改动, 后面运行crond脚本运行时检查不到标志文件就正常开启daemon crond
如果/var/lock/subsys/crond存在说明之前已经有一个crond在运行,那么它会再检查
/var/run/crond.pid,如果该pid代表的进程正在运行,crond 脚本自行退出
反之如果这两个文件中的任何一个被删除或者pid对应进程已经不存在那么它就认为crond没有运行,crond会正常启动,并且生成新的标示文件,这样可以阻止crond再次运行,以达到只有一个crond运行的目的,当然在它正常关闭的情况下,这两个标志文件会被自动删除。
你的情况应该是在前一个crond运行后,要么有人手动直接运行 daemon crond , 要么是这两个标志文件之一被删除或者改动, 后面运行crond脚本运行时检查不到标志文件就正常开启daemon crond
追问
很给力,我能重现错误
力控科技
2024-08-19 广告
2024-08-19 广告
ForceSCADA是力控科技信创产品的重要组成部分,具备完全自主知识产权,支持部署在Linux桌面版、服务器版、嵌入式等系统架构下。使用ForceSCADA可以搭建创新性高、扩展性佳、融合度强的SCADA平台,进而构建高效、智能化的监控中...
点击进入详情页
本回答由力控科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询