Rails 4.1にバウンスバックメールを受信させようとしていますが、この点に到達することすら非常に困難です。rootとしてログインすると、SSHコンソールで以下のコマンドを実行できますが、/ etc / validasesファイルに配置すると、「次のアドレスが失敗しました」というスクリプトからのバウンスが返されます。
runuser -l useraccount -c "cd /home/useraccount/rails_deployments/dev.www/current/bin && rails runner -e development 'EBlast.receive(STDIN.read)'"
/etc/valiases/dev.mydomain.com
[email protected]: "|runuser -l useraccount -c "cd /home/useraccount/rails_deployments/dev.www/current/bin && rails runner -e development 'EBlast.receive(STDIN.read)'""
また、二重引用符をエスケープして無駄にしようとしました。
ルートのRVM環境変数が存在しないため、ユーザーアカウントとして実行する必要があります。rootとしてログインしているときにSSHコンソールで最初のコマンドを実行すると機能しますが、eximが電子メールを受信したときは機能しません。
この問題を回避するために私がしなければならなかったことがいくつかあります。
1)Toddが提案したように、ランナースクリプトを独自のファイルに移動します。ネストされた引用符が原因で、スクリプトの実行に失敗していました。
2)ファイルを実行可能にします。権限はすでに755に設定されています。
3)eximが私のユーザー名を使用してスクリプトを実行していましたが、PATHやHOMEなどの環境変数がまったく設定されていませんでした。これによりruby
、不明なコマンドが発生しました。ほとんどのアプリはRVMとそのジェムセットに依存しているため、これにより他の多くの問題が発生しました。だから私はルビーを走らせることができず、レールははるかに少なかった。明示的にルビーラッパーを呼び出しても、設定されていないspring
ので壊れてしまい$HOME
ます。ユーザー環境が設定されていなかったため、問題のカスケードにすぎません。またsu - username -c 'whatever'
、eximが使用していたアカウントにを使用する権限がなかったため、発行することもできませんでしたsu
。
したがって、作業セットアップは次のようになります。
/etc/valiases/dev.mydomain.com
[email protected]: "|/bin/bash -l -c '/home/useraccount/rails_deployments/dev.www/current/script/receive_eblast_bounce'"
*: ":fail: No Such User Here"
/home/useraccount/rails_deployments/dev.www/current/script/receive_eblast_bounce
D=`pwd`
HOME=/home/useraccount
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if [[ -s "/home/useraccount/.rvm/scripts/rvm" ]] ; then
source "/home/useraccount/.rvm/scripts/rvm"
fi
cd /home/useraccount/rails_deployments/dev.www/current
./bin/rails runner -e development 'EBlast.receive(STDIN.read)'
cd $D
現在、SSLを使用すべきでないときにActionMailerで問題が発生しており、それがここで行ったことに関連しているかどうかはわかりませんが、少なくともrailsスクリプトを実行します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加