0

パッセンジャー インスタンスが実行されていない場合に起動するシェル スクリプトがあります。

#!/bin/bash
/usr/sbin/lsof -i :82 > /home/var/www/site-owner/data/www/site.com/currenttest
if [ ! -s /home/var/www/site-owner/data/www/site.com/currenttest ];
  then
    cd /home/var/www/site-owner/data/www/site.com/current/
    passenger start -p 82 -d -e production --user site-owner
fi

ルート ssh 環境から起動すると、非常にうまく機能します。crontab から起動しようとしましたが、「passenger_loader.sh: 12 行目: パッセンジャー: コマンドが見つかりません」というエラーで起動しませんでした。

何時間ものグーグルで、ルートユーザーとルートコンソールユーザーのcrontabの環境が異なることがわかりましたが、とにかく、crontabルートユーザーにルートコンソールユーザーのようなスクリプトを実行させる方法がわかりません。追加し始めました

source ~/.bash_profile
source ~/.bashrc 

スクリプトに変更しましたが、何も変わりませんでした。

4

1 に答える 1

0

それが解決策かどうかはわかりませんが、必要なように機能します(bashから開始しました):

#!/bin/bash

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

HOME=/root
PATH=/usr/local/rvm/gems/ruby-1.9.3-p374/bin:/usr/local/rvm/gems/ruby-1.9.3-p374@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p374/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
export HOME PATH

/usr/sbin/lsof -i :82 > /home/var/www/site-owner/data/www/site.com/currenttest
if [ ! -s /home/var/www/site-owner/data/www/site.com/currenttest ];
  then
    # passenger down
    date
    #. "/usr/local/rvm/scripts/rvm"
    rvm use 1.9.3
    cd /home/var/www/site-owner/data/www/site.com/current/
    passenger start -p 82 -d -e production --user site-owner
fi
于 2013-02-05T15:03:17.530 に答える