crond has improper locking preventing multiple daemons from running
Issue
There are two issues here with cronie-1.4.4-12.el6.x86_64.
- If a child CROND process is killed, it removes the parents pid/lock file.
- If the pid/lock file is removed, multiple crond's can be running.
EXAMPLE ISSUE #1
[root@pocvm1w106m7 ~]# service crond status
crond (pid 6211) is running...
[root@pocvm1w106m7 ~]# ps -ef |egrep 'crond|CROND|sleep'
root 6211 1 0 Mar04 ? 00:00:07 crond -m off
root 30573 6211 0 13:55 ? 00:00:00 CROND -m off
root 30575 30573 0 13:55 ? 00:00:00 sleep 120
root 30576 6211 0 13:56 ? 00:00:00 CROND -m off
root 30577 30576 0 13:56 ? 00:00:00 sleep 120
root 30590 30549 0 13:56 pts/0 00:00:00 egrep crond|CROND|sleep
[root@pocvm1w106m7 ~]# kill 30573 30576
[root@pocvm1w106m7 ~]# service crond status
crond dead but subsys locked
[root@pocvm1w106m7 ~]# ps -ef |egrep 'crond|CROND|sleep'
root 6211 1 0 Mar04 ? 00:00:07 crond -m off
root 30575 1 0 13:55 ? 00:00:00 sleep 120
root 30577 1 0 13:56 ? 00:00:00 sleep 120
root 30600 30549 0 13:56 pts/0 00:00:00 egrep crond|CROND|sleep
EXAMPLE ISSUE #2
[root@pocvm1w106m7 ~]# service crond start
Starting crond: [ OK ]
[root@pocvm1w106m7 ~]# service crond status
crond (pid 30615) is running...
[root@pocvm1w106m7 ~]# ps -ef |egrep 'crond|CROND|sleep'
root 6211 1 0 Mar04 ? 00:00:07 crond -m off
root 30601 6211 0 13:57 ? 00:00:00 CROND -m off
root 30602 30601 0 13:57 ? 00:00:00 sleep 120
root 30603 6211 0 13:58 ? 00:00:00 CROND -m off
root 30604 30603 0 13:58 ? 00:00:00 sleep 120
root 30615 1 0 13:58 ? 00:00:00 crond -m off
root 30626 30549 0 13:58 pts/0 00:00:00 egrep crond|CROND|sleep
Environment
- Red Hat Enterprise Linux 6
- cronie
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.