我有一个脚本/ 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
答案 0 :(得分: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