【问题标题】:Crontab does not work properlycrontab 无法正常工作
【发布时间】:2017-07-13 11:56:23
【问题描述】:

我有一个脚本 /root/restart-container-name

#!/bin/bash
/usr/bin/docker restart container_name 2>/dev/null
/usr/bin/docker exec -ti container_name /path/launcher.sh 2>/dev/null

没有 cron 它可以工作。 在 crontab 中只工作第一个命令。第二个不起作用。

权限 700 并由 root 拥有

我将 stderr 重定向到文件 /tmp/container_name.log。错误是

the input device is not a TTY

【问题讨论】:

    标签: linux docker cron crontab


    【解决方案1】:

    您看到的错误消息已经试图解释问题所在。当您为 exec 命令指定 -t 时,它会尝试分配一个 TTY。从 cron 运行时,没有可用的伪 TTY,因此失败。

    尝试将您的脚本更改为:

    #!/bin/bash
    /usr/bin/docker restart container_name 2>/dev/null
    /usr/bin/docker exec -i container_name /path/launcher.sh 2>/dev/null
    

    仅供参考:这里有很多关于 cron 和 TTY 的问题。例如,这个问题很好地解释了这个问题:"stdin: is not a tty" from cronjob

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 2013-03-23
      • 2020-12-15
      • 2013-06-02
      • 2014-12-15
      • 1970-01-01
      • 2013-11-12
      • 2023-03-04
      相关资源
      最近更新 更多