For some reason my cron job scripts aren't exiting cleanly and they're backing up my server. There are currently a couple hundred processes running for one of my users. I can use the following command to kill all processes by that user, but how can I simplify this to kill only crons?

pgrep -U username | while read id ; do kill -6 $id ; done

It would be dangerous to run the above command as is, correct? Wouldn't that kill mysql and other important things?


To kill all processes for the user, you have a few options. I like: su - username then kill -9 -1

To see which "cron" processes belong to user :

pgrep -u username cron

To kill those processes:

pkill -u username cron
| improve this answer | |
  • I think this might work if I add an -f – I wrestled a bear once. Aug 20 '14 at 16:35
  • Sure. Pointed in the right direction. – ewwhite Aug 20 '14 at 16:37


kill -6 $(pgrep -U username cron) 

You can search with pgrep full string with -f arg if you need to kill specific cron jobs, while let others live.

kill signal is pretty dangerous really, so you should check what you are going to kill. If username is 'root' then you can kill important things, yes.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.