Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Crontab重启管理器python实例?_Python_Ubuntu_Cron_Supervisord_Apscheduler - Fatal编程技术网

Crontab重启管理器python实例?

Crontab重启管理器python实例?,python,ubuntu,cron,supervisord,apscheduler,Python,Ubuntu,Cron,Supervisord,Apscheduler,在使用crontab重新启动一个监控python实例时,我遇到了一个非常奇怪的问题。 详情如下: 一个非常简单的Python脚本,其中包含一些调度作业(apscheduler) 脚本需要在supervisor中查看,所以我进行了一些配置,到目前为止运行良好 新的需求需要每天中午重置脚本。因此,我设置了一个sudo crontab作业,通过使用 01 12 * * * sudo /usr/bin/supervisorctl restart {instance name} 一切似乎都很好,我每天

在使用crontab重新启动一个监控python实例时,我遇到了一个非常奇怪的问题。 详情如下:

  • 一个非常简单的Python脚本,其中包含一些调度作业(apscheduler)
  • 脚本需要在supervisor中查看,所以我进行了一些配置,到目前为止运行良好
  • 新的需求需要每天中午重置脚本。因此,我设置了一个sudo crontab作业,通过使用

    01 12 * * * sudo /usr/bin/supervisorctl restart {instance name}
    
  • 一切似乎都很好,我每天都检查实例的运行时间,这表明实例已经正确重启
  • 然后我意识到,在实例自动重启之后,脚本甚至没有被触发
  • 但是,如果我在supervisor控制台中使用restart链接,脚本restart&works就完美了

  • Root cron作业不需要在脚本路径中指定
    sudo
    ,即可使用管理权限运行(Root拥有顶级权限)

    要将cron作业添加到root用户的cron作业列表中,请运行:
    sudo crontab-e

    您的cron选项卡条目应修改为:

    01 12 * * * /usr/bin/supervisorctl restart {instance name}
    

    Root cron作业不需要在脚本路径中指定
    sudo
    ,即可使用管理权限运行(Root拥有顶级权限)

    要将cron作业添加到root用户的cron作业列表中,请运行:
    sudo crontab-e

    您的cron选项卡条目应修改为:

    01 12 * * * /usr/bin/supervisorctl restart {instance name}
    


    对于文本格式很抱歉,我在手机上发布。cron作业是否属于root用户(通过运行
    sudo crontab-e
    而不是
    crontab-e
    )?如果是这样,您不需要
    sudo
    。对于普通用户的cron作业,
    sudo
    会询问他们的密码,crontab不会自动输入您的密码。@btquanto感谢您的回答,将稍后尝试更新。如果使用“crontab-e”而不是“sudo crontab-e”,请尝试一下,由于权限被拒绝,实例将不会重新启动。我的意思是,在运行根cron作业时,cron作业中不需要
    sudo
    。您的cron作业将变成
    012***/usr/bin/supervisorctl restart{instance name}
    对不起,我在手机上发布了文本格式。cron作业是否属于root用户(通过运行
    sudo crontab-e
    而不是
    crontab-e
    )?如果是这样,您不需要
    sudo
    。对于普通用户的cron作业,
    sudo
    会询问他们的密码,crontab不会自动输入您的密码。@btquanto感谢您的回答,将稍后尝试更新。如果使用“crontab-e”而不是“sudo crontab-e”,请尝试一下,由于权限被拒绝,实例将不会重新启动。我的意思是,在运行根cron作业时,cron作业中不需要
    sudo
    。您的cron作业将变成
    012***/usr/bin/supervisorctl restart{instance name}
    hi,这个方法似乎昨天才起作用,这很奇怪,crontab作业成功地重新启动了实例,但今天仍然没有触发内部的函数。那么可能是另一个问题,如果您以root用户身份运行该命令,它是否正确运行?(Sudo进入root,然后运行该命令)云服务只允许我运行类似“Sudo-supervisortl-restart{instance-name}”这样的命令,它可以工作。最重要的是,每次我在supervisor控制台中使用restart链接时,似乎一点问题都没有!(当我使用crontab重新启动时,控制台中的正常运行时间显示实例当时确实重新启动了,但没有触发任何功能)非常愚蠢的错误!!!!我重新检查了我的源代码,然后我意识到我已经设置了一个触发函数的条件,这类似于“if int(now_hour)>12:”,我使用crontab在12:00重新启动脚本,这当然不会触发函数。每次我在控制台上重新启动都是在下午13点以后,这就是为什么它会工作的原因!!!您好,这个方法似乎昨天才起作用,这很奇怪,crontab作业成功地重新启动了实例,但今天仍然没有触发内部的函数。那么可能是另一个问题,如果您以root用户身份运行该命令,它是否能正确运行?(Sudo进入root,然后运行该命令)云服务只允许我运行类似“Sudo-supervisortl-restart{instance-name}”这样的命令,它可以工作。最重要的是,每次我在supervisor控制台中使用restart链接时,似乎一点问题都没有!(当我使用crontab重新启动时,控制台中的正常运行时间显示实例当时确实重新启动了,但没有触发任何功能)非常愚蠢的错误!!!!我重新检查了我的源代码,然后我意识到我已经设置了一个触发函数的条件,这类似于“if int(now_hour)>12:”,我使用crontab在12:00重新启动脚本,这当然不会触发函数。每次我在控制台上重新启动都是在下午13点以后,这就是为什么它会工作的原因!!!