如何查看/停止当前运行的crontab任务?

  1. 如何查看正在进行的crontab任务?
  2. 如何手动停止正在进行的crontab任务?

关于当前运行的cron进程是否[问题]?

手动杀死进程的一种方法是使用pkill

我曾经想过pkill / killall,但我在crontab文件中的一些命令分别是! 这意味着在完成命令后,下一个命令将启动! 例如:

sudo crontab -e

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

所以,如果我杀了wget,计算机将关机! – >我想完全杀死一个cron任务,而不是它的一部分!

下一个pkill问题:脚本怎么样? (我已经将一些bash脚本导入到crontab -e) – > sudo pkill ???

首先,在crontab中每行只使用一个命令。 更改此crontab行:

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

它看起来像:

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

并使用以下内容创建/path/to/my/crontab/script1.sh

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

当然,不要忘记给它执行权限:

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

其次,您可以在以下输出中看到以有用且可读的格式运行crontab任务:

 ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$" 

它们将出现在第一行,如下所示:

 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 

第一列是PID,第二列是会话ID,第三列是由cron启动的命令。 您可以使用会话ID终止与特定cron任务相关的所有进程,因此在上面的示例中,您应该终止会话ID 4289:

 pkill -s 4289 

手动杀死进程的一种方法是使用pkill 。 pkill将停止名称中包含以下模式的所有进程。 例如,停止所有wget进程使用:

 sudo pkill wget