如何结束 cron 启动脚本?

如何结束 cron 启动脚本?

我通过 cron 启动了一个脚本,它运行良好。但是当我尝试通过 cron 结束该脚本时(killall/ pkill/pgrep都可以),什么也没发生。

如果我让 cron 尝试终止它或我自己尝试终止它,则没有什么区别。停止它的唯一方法似乎是htop按 F9(sigterm)。

那么,如何结尾cron 启动脚本?

我的脚本以 开始#!bin/bash,并且 cron 以 启动它./path/script.sh

有任何想法吗 ?

答案1

无论如何都应该通过它的 pid 来杀死它:

  • 运行ps -ef(或者ps -efww如果行太长而无法读完)
  • 找到脚本名称,你将得到它的 pid
  • 用以下方法杀死它:

    kill <pid>
    

    (请注意:不是pkill,而是用作pkill <application>不是作为pkill <pid>

笔记:

使用命令:

ps -ef | grep testscript

将列出两个进程;一个是您要查找的进程,另一个是搜索过程本身你正在运行,例如:

jacob     4183  3647  0 11:22 pts/10   00:00:00 python3 /home/jacob/Bureaublad/testscript.py
jacob     4202  4189  0 11:22 pts/25   00:00:00 grep --color=auto testscript

这意味着你必须使用例如:

ps -ef | grep <scriptname> | grep -v grep
> jacob     4183  3647  0 11:22 pts/10   00:00:00 python3 /home/jacob/Bureaublad/testscript.py

仅查找您需要的行。

与该pgrep命令不同,该命令会将自身从列表中过滤掉,正如所指出的那样这里: :

pgrep -f testscript
> 4183

这意味着,pgrep -f <scrptname>出于多种原因,使用@muru 所建议的方法是一种更好的方法。

相关内容