【问题标题】:Ubuntu Cron Job ScreenUbuntu Cron 作业屏幕
【发布时间】:2017-07-05 20:10:34
【问题描述】:

我正在尝试运行一个在

中运行这行代码的程序

screen livestream_dl -u "..." "..."

然后它会开始检查 Instagram Live 视频是否处于活动状态,如果可以找到则下载它,如果找不到,则屏幕终止。

我的问题是我通过添加这个把它放到了 cron 作业中

*/1   *    *    *    *     screen livestream_dl "name" "igname" -p "pass"

首先,我应该将其保留为屏幕还是没有屏幕,如果我通过 SSH 命令行执行相同的操作可以获得结果

其次,我如何改进这个 cron 作业以确保 Cronjob 是否已经在运行,然后忽略该命令并在一分钟内再次检查?

非常感谢! :)

【问题讨论】:

  • 最好将命令添加到bash 脚本中,然后从cron 中调用它
  • @pyjg 如何确定 Screen 会话是否仍处于打开状态/cron 作业是否仍在运行?
  • 您需要在脚本中设置一个变量,并在每次运行脚本时检查该变量。当脚本完成时,您只需切换变量。例如,只有当变量为 True 时才会运行,如果它是 False,则可以退出。您可以将其存储在数据库中/将其写入脚本中的文件等。

标签: python ubuntu cron gnu-screen


【解决方案1】:

您绝对应该删除屏幕。 screen 用于使终端会话可以从另一个 TTY 恢复。由于 cron 作业根据定义不是交互式的,因此您不需要它。

为了防止cron同时启动两个job实例,你可以使用flock。 flock 将在第一次运行时创建一个信号量文件。如果找到这样的文件,它将等待信号量被删除,或者如果您指定了 nonblack 选项,则立即终止。后者可能是您想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2011-06-13
    • 2010-11-15
    • 2013-02-24
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多