2

/home/myuser/watchDir/myapp に Rails アプリケーションがあり、変更のために ../watchDir を監視する incron ジョブが設定されています。トリガーされると、incron はスクリプト /usr/local/bin/myscript.sh を実行します。これは、スクリプトを実行するための incron を取得できる唯一の場所です。そのスクリプトには、ルート アプリで実行する呼び出しrakeとコマンドがあります。bundleI スクリプトは実行されています (そのためのテストがあります) が、コマンドbundlerakeコマンドの両方がサイレントに失敗します。私はLinuxにかなり慣れていないので、インターネットの調査でいくつかの解決策が得られました。スクリプトにはすべての絶対パスがあります。scripts/incron コマンドに bash_profile を追加してみました。ホームディレクトリにある別のスクリプトをincronスクリプトで実行してみました。すべてのスクリプトは実行可能です。--gemfileオプションを使ってみたbundleしかし、それはうまくいきません。私がここで何をしなければならないか知っている人はいますか?基本的に、 RAILS_ROOT の外でbundleandコマンドを実行したいと考えています。rakeまた、incron によって rails コマンドの使用が複雑になるかどうかも知りたいです。ありがとう。

編集:

関連ファイルは次のとおりです。

インクロタブ:

/home/myuser/watchDir/ IN_MODIFY,IN_CLOSE_WRITE,IN_CLOSE_NOWRITE /bin/bash /usr/local/bin/runT.sh  $@/$#

私もこれを試しました:

/home/myuser/watchDir/ IN_MODIFY,IN_CLOSE,IN_CLOSE_WRITE,IN_CLOSE_NOWRITE source '/home/myuser/.bash_profile && /bin/sh /usr/local/bin/runT.sh'  $@/$#

呼び出しているスクリプトは次のとおりです。

#!/bin/bash
mkdir /home/myuser/worked  #This is to ensure that that incron is running and executing this script
cd /home/myuser/watchDir/myapp
/home/myuser/.rvm/gems/ruby-1.9.3-p545/bin/bundle install --gemfile /home/myuser/watchDir/myApp/Gemfile
/home/myuser/.rvm/gems/ruby-1.9.3-p545/bin/rake -f /home/myUser/watchDir/myApp

私の .bash_profile ファイル:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
source ~/.profile
4

1 に答える 1

1

私の最後のコメントを要約するには...icrontabエントリを次のように変更します。

/home/myuser/watchDir/ IN_MODIFY,IN_CLOSE_WRITE,IN_CLOSE_NOWRITE /bin/bash /usr/local/bin/runT.sh  $@/$#

そして、スクリプトは次のようになります。

#!/bin/bash
source /home/myuser/.bash_profile
mkdir /home/myuser/worked  #This is to ensure that that incron is running and executing this script
cd /home/myuser/watchDir/myapp
/home/myuser/.rvm/gems/ruby-1.9.3-p545/bin/bundle install --gemfile /home/myuser/watchDir/myApp/Gemfile
#/home/myuser/.rvm/gems/ruby-1.9.3-p545/bin/rake -f /home/myUser/watchDir/myApp
于 2014-03-14T14:17:43.080 に答える