[this] 是关于查看当前正在运行的 cron 进程的问题吗?
是的
手动终止进程的一种方法是使用 pkill
我曾考虑过 pkill/killall,但我在 crontab 文件中的一些命令分别是!这意味着完成一个命令后,将启动下一个命令!例如:
sudo crontab -e
00 10 * * * /usr/bin/wget LINK ; shutdown -h now
Run Code Online (Sandbox Code Playgroud)
所以,如果我杀了wget,电脑就会断电!!!-> 我想完全杀死一个 cron 任务,而不是它的一部分!
下一个pkill问题:脚本呢?(我已经导入了一些 bash 脚本crontab -e)-->sudo pkill ???
Eri*_*lho 49
首先,在 crontab 中每行只使用一个命令。更改此 crontab 行:
00 10 * * * /usr/bin/wget LINK ; shutdown -h now
Run Code Online (Sandbox Code Playgroud)
所以它看起来像:
00 10 * * * /path/to/my/crontab/script1.sh
Run Code Online (Sandbox Code Playgroud)
并/path/to/my/crontab/script1.sh使用此内容创建:
#!/bin/bash
/usr/bin/wget LINK
shutdown -h now
Run Code Online (Sandbox Code Playgroud)
当然,别忘了给它执行权限:
chmod +x /path/to/my/crontab/script1.sh
Run Code Online (Sandbox Code Playgroud)
其次,您可以在以下输出中以有用且可读的格式看到正在运行的 crontab 任务:
ps -o pid,sess,cmd afx | egrep -A20 "( |/)cron( -f)?$"
Run Code Online (Sandbox Code Playgroud)
它们将出现在第一行,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
第一列是 PID,第二列是会话 ID,第三列是由 cron 启动的命令。您可以使用会话 ID 终止与特定 cron 任务相关的所有进程,因此在上面的示例中,您应该终止会话 ID 4289:
pkill -s 4289
Run Code Online (Sandbox Code Playgroud)