두 대의 서버가 있습니다. 프로덕션 서버와 준비 서버는 동일합니다.
그리고 /etc/init/폴더에 시작 스크립트가 있습니다.
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
왜 성가신 bash 스크립트입니까? 그것은 (da) sh가 그것을 완벽하게 잘 해석하는 것처럼 보입니다.
—
David Foerster