Thanks you for pointing me in the right direction.
I have found the problem.
I have a "clearup" job that runs in the root cron at these minutes 15,25,35,45,55,05. Its function is to kill certain user logins if they have been active for more than 12 hours. Normally it would never find any. Any processes it does find it writes into a temporary work file called /tmp/$PPID then it kills each of the processes in this file one by one.
I have another job that runs in the root cron at these minutes 00,15,30,45. It also uses a temporary work file called /tmp/$PPID.
At minutes 15 and 45 these jobs run together. They write their respective work files using their $PPID which (and it was a suprise to me) are the same process numbers. If the timing is just wrong then my clearup job which has actually found no records tests the /tmp/$PPID file and finds that there are records in it (created by my second job). The clearup job loops round this work file thinking it is finding processes to kill and tries to kill them. I have found things in the log like
kill 11:01:01 - which fails
kill 00:00 - which fails
kill 0
kill 1
Where there are "kill 0" or "kill 1" commands found , these tie in exactly to when the crons were restarted.
So there you go - problem sorted - dump shell programming on my part.
Thanks again.