首页 > 解决方案 > 如何在 crontab 中结束循环脚本?

问题描述

我正在编写一个贯穿永无止境的循环的脚本。使用 cron 我在重新启动时启动脚本。但是,我需要每 24 小时从 github 更新此脚本。我正在运行一个基本上如下的shell脚本:

  1. 将 cron 备份到 .txt 文件
  2. 使用 crontab -r 清空 cron
  3. 从 GitHub 拉取更新
  4. 加载 cron 备份并再次启动 cron。

shell脚本清空cron,更新代码,然后用相同的文件名再次启动cron,cron再次运行程序。每次脚本完成一个循环时,我都会通过向文本文件输出一条消息来测试这一点。当我在 GitHub 中更改消息输出时,cron 会拉取更新,我可以看到更新后的消息。问题是,它也继续显示旧消息。例如:

原始消息“测试”:测试测试测试测试测试测试更新消息“更新”:测试更新测试更新测试更新

即使我清除了 cron,更新了代码,然后再次启动它,它仍会继续输出旧消息。在我看来,简单地清空 cron 并不能阻止前一个循环继续运行。

我考虑使用“killall”来阻止所有 sh 脚本运行,但为了清除我创建的许多循环脚本,我用 killall5 -9 杀死了每个正在运行的进程。现在当我输入 ps 查看正在运行的进程时,没有列出。

我很困。任何和所有的帮助将不胜感激!

标签: linuxgithubcronraspberry-pi

解决方案


使用 sudo pkill python 结束所有正在运行的 python 脚本。


推荐阅读