【发布时间】:2016-10-12 09:21:37
【问题描述】:
我有一个带有一些 cronjobs 的 Rails 4 应用程序。我已将该应用程序迁移到新的 debian 服务器。目前我从 Cronjobs 收到了这个错误。
stdin: is not a tty
一个 cronjob 看起来像这样:
17,34,51 * * * * /bin/bash -l -c 'cd /var/www/html/myapp && RAILS_ENV=production bundle exec rake crons:mark_as_done --silent >> log/cron.log 2>&1'
问题出在哪里?在我的旧机器上我没有遇到这个问题。
非常感谢
cronjobs 在 scedule.rb 中设置并随时部署
看起来像这样:
every 13.minutes do
rake "crons:generate_m", :environment => :production
end
更新
【问题讨论】:
-
通常,这是因为您的 sudoers 文件中有一行
Defaults requiretty。只需将其注释掉。 -
在哪里可以找到这个文件?
-
作为 root 用户,输入
visudo。编辑此文件时要非常小心,因为它是授予非 root 用户 root 权限的文件。 -
我也可以用 nano 编辑这个文件吗?
-
没问题,直接说
EDITOR=/usr/bin/nano visudo。
标签: ruby-on-rails ruby-on-rails-4 cron crontab whenever