2016-07-12 5 views
0

私はバックグラウンドで実行する必要があるいくつかのレーキタスクがあります。私はrbenvを使ってRubyのバージョンを管理しています。supervisordはタスクを実行し、bundleは正しいGemバージョンを使用しています。各タスクのための私のsupervisordの設定は次のようになります。bundle execを実行しているときに、 "ps aux"で完全なコマンドを表示する方法

[program:data-importer] 
command=/home/ubuntu/.rbenv/bin/rbenv exec bundle exec rake import:data 
environment=RAILS_ENV=production,PATH=/home/ubuntu/.rbenv/shims:%(ENV_PATH)s,PRODUCTION=true 
directory=/home/ubuntu/app/current 
user=ubuntu 
stdout_logfile=/var/log/app/%(program_name)s-out.log 
stderr_logfile=/var/log/app/%(program_name)s-err.log 
autostart=true 

私はまた私のインフラを監視するためにconsulを使用している、と私は、これらのスクリプトが実行されていることを確認するために、領事チェックを使用しています。チェックは、以下に示す、非常にシンプルなbashスクリプトを呼び出します。

#!/bin/bash 

if ps -ef | grep [i]mport:data | grep -v running; then 
    echo "data importer running" 
    exit 0 
else 
    echo "data importer not running" 
    exit 2 
fi 

これらのチェックが失敗し始めたとき、これらのスクリプトは、数日前まではうまく動作していました。問題は、ps -efを実行すると、リストされたプロセスにimport:dataが含まれていないことです。

ubuntu 30450 ... /home/ubuntu/.rbenv/versions/2.3.1/bin/rake 

実際にマシン上で変更されたものはありません。Rubyバージョンのみです。私たちは2.2.2を使い、先週の金曜日に2.3.1にアップグレードしました。 Rubyのアップグレード後に新しいバージョンをインストールしたので、それがバンドラの問題だと私は思うのです。

日曜日までは問題は見られませんでしたが、以前は見たことがない可能性があります。

誰もがこれを手伝ってくれますか?私はあなたがすくいコールの前後に引用符を配置する必要があり-ef psの中に所望の出力を得るためにしばらくの間、今:(

答えて

3

を立ち往生してきた:

bundle exec 'rake import:data' 
関連する問題