私は2つのサーバーを持っていますが、それらは同一(私は信じています)であり、実動サーバーとステージングサーバーです。
/etc/init/
フォルダーにupstartスクリプトがあります。
description "Discoure process"
setuid deploy
setgid deploy
respawn
respawn limit 3 30
start on runlevel [2345]
stop on runlevel [06]
script
exec /bin/bash <<'EOT'
echo \"$HOME/.rbenv\"
cd /home/deploy/discourse/current
bundle exec bluepill load config/discourse.pill --no-privileged --base-dir tmp/bluepill --logfile log/bluepill.log
EOT
end script
ステージングサーバーでは問題なく機能しますが、本番サーバーでそのスクリプトを実行すると、HOME変数が空になり、コードecho "$HOME/.rbenv"
は次のように評価されます。"/.rbenv"
ここで何が問題になるのでしょうか?ありがとう
根本的な原因はわかりませんが、最初に静的に設定してみませんか?
—
jobin 2013
なぜ厄介なbashスクリプトなのか?(da)shが完全に正常に解釈するようです。
—
David Foerster