首页 文章

Crontab没有通过脚本注册更改

提问于
浏览
0

我正在使用python subprocesscrontab 进行更改,具体使用:

subprocess.Popen(["crontab", cron_tab_file])

这一切都很好,当我使用 crontab -l 检查crontab时, cron_tab_file 中的所有内容都存在 . 但是,什么都没有 .

我总是使用完整的路径,例如:

* * * * * /bin/bash /full/path/to/test.sh

但是,如果我使用_1445619从终端再次保存crontab而不实际更改任何内容,则crontab突然变为活动状态并开始在其中运行命令 . 我不是在crontab中按内容运行而不需要手动更新吗?我在网上任何地方找到解决方案或解释 . 我've made repeated tries and each time edits by python script doesn'工作,如果我通过手动保存它来改变它突然工作 .

附加信息

我用sudo权限检查了 /usr/lib/cron/tabs ,无论是我还是脚本,我的cron文件总是被改变 . 但如果是改变它的脚本,则更改将不会运行 . 如果我手动编辑它,则会显示消息 crontab: installing new crontab 并运行新命令 . 是否有命令强制cron安装新的crontab?

1 回答

  • 0

    我刚刚发现了一个非常丑陋的解决方法 .

    def activate_cron():
        execute = subprocess.Popen(["echo", "\033:wq\n"], stdout=subprocess.PIPE)
        activate = subprocess.Popen(["crontab", "-e"], stdin=execute.stdout)
        # Wait for crontab to save
        time.sleep(5)
        activate.kill()
    

    这将输出 crontab: installing new crontab ,它将最终激活我的分钟任务..

相关问题