Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.
  1. How can I see crontab tasks which are in progress?
  2. How can I stop crontab tasks which are in progress, manually?

Is [this] question about see the current running cron processes?

Yes

To kill a process manually one way is to use pkill

I had thought about pkill/killall, but some of my commands in crontab file are respectively! it means that after finishing a command, the next one will be started! for example:

sudo crontab -e

00 10 * * * /usr/bin/wget LINK ; shutdown -h now

So, If I kill wget, the computer will be powered off!!! -> I want to kill a cron task fully, not a part of it!

the next pkill problem: What about scripts? (I've imported some bash scripts to crontab -e) - > sudo pkill ???

share|improve this question
    
Is your question about see the current running cron processes? or the list of cron-jobs? Please edit your question to be more clear about this. To stop the running cron-job go (askubuntu.com/q/272419/66980) –  Mohammad Etemaddar Jun 26 '13 at 18:16
    
Edited; 1. yes, watching current running cron processes? (I want to bring processes to foreground); 2. Then, I want to stop it manually?! (not from crontab schedule) –  mini Jun 26 '13 at 19:13
    
The best way to add additional information to your question is by editing it, with the edit button. It is better visible that way, and comments are mainly for secondary, temporary purposes. Comments are removed under a variety of circumstances. Anything important to your question should be in the question itself. –  guntbert Jun 26 '13 at 19:47

2 Answers 2

up vote 11 down vote accepted
+50

Firstly, use only one command per line in crontab. Change this crontab line:

00 10 * * * /usr/bin/wget LINK ; shutdown -h now

so it looks like:

00 10 * * * /path/to/my/crontab/script1.sh

and create /path/to/my/crontab/script1.sh with this content:

#!/bin/bash
/usr/bin/wget LINK
shutdown -h now

Of course, don't forget to give it execution permission:

chmod +x /path/to/my/crontab/script1.sh

Secondly, you can see running crontab tasks, in a useful and readable format, in the output of ps -o pid,sess,cmd afx | grep -A20 "cron$". They will appear in the first lines, something like this:

1108  1108 cron
4288  1108 \_ CRON
4289  4289     \_ /bin/sh -c /path/to/my/crontab/script1.sh
4290  4289         \_ /bin/bash /path/to/my/crontab/script1.sh
4295  4289             \_ /usr/bin/wget LINK

First column is PID, second is Session ID and third is the command started by cron. You can kill all the processes related to a specific cron task using the Session ID, so in the example above you should kill Session ID 4289:

pkill -s 4289
share|improve this answer

To kill a process manually one way is to use pkill. pkill will stop all processes that have the following pattern in its name. for example to stop all wget processes use:

sudo pkill wget
share|improve this answer
    
I had thought about pkill/killall, but some of my commands in crontab file are respectively! it means that after finishing a command, the next one will be started! for example: sudo crontab -e => 00 10 * * * /usr/bin/wget LINK ; shutdown -h now => So, If I kill wget, the computer will be powered off!!! -> I want to kill a cron task fully, not a part of it! the next pkill problem: What about scripts? (I've imported some bash scripts to crontab -e) - > sudo pkill ??? –  mini Jun 26 '13 at 19:47

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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