2016-06-11 9 views
0

私はいくつかのcronjobでRails 4アプリケーションを持っています。私は新しいDebianサーバーにアプリケーションを移行しました。現時点で私はCronjobsからこのエラーを受けました。問題のwheresRails cronjob problems

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' 

stdin: is not a tty 

cronジョブはそのように見えますか?私の古いマシンでは私はこの問題を抱えていませんでした。すべて

cronジョブで

おかげでscedule.rbに設定し、

はこのようになりますたびに配備されました:猫の

every 13.minutes do 
    rake "crons:generate_m", :environment => :production 
end 

visudoを enter image description here

結果/.bashrc enter image description here

UPDATE

作業機からbashrcに enter image description here

+0

通常、これはsudoersファイルに 'Defaults requiretty'という行があるためです。ただコメントしてください。 – fedorqui

+0

このファイルはどこにありますか? – Felix

+0

rootユーザーで、 'visudo'と入力してください。このファイルはroot以外のユーザーにroot権限を与えるので、このファイルを編集するのには非常に注意してください。 – fedorqui

答えて

1

何かが読んだり、それがTTYであることを期待していた方法でSTDINを操作しようとしています。

これが他のマシンで発生しない場合は、bashを-lでログインシェルとして動作させたいので、ロードされているrcfileにある可能性があります。

新しいマシンの~/.bashrcとそれに匹敵するファイルを確認してください。

+0

の上にvisudoを追加しました。どこでrcfileが見つかりましたか? – Felix

+0

は上記の質問を更新しました。 – Felix

+0

rcfileは、cronを実行しているユーザーのホームディレクトリにあります。そのマシンで 'cat〜/ .bashrc'を実行すると出力は何ですか?そのファイルが存在しない場合、ユーザーのホームディレクトリに他の同様の名前の隠しファイルが存在する可能性があります。私はあなたがcronジョブを実行するユーザーとしてログインしていると仮定します。 –