나는 Ruby API와 서비스를 살펴보기 위해 하나님을 사용한다. 나는 서버가 부팅 할 때이 서비스를 시작하기 위해 Init 스크립트를 만들었다. 이렇게하면 두 가지 질문이 생깁니다.시작시 God 스크립트로드 - 세계적인 보석이 필요합니까?
먼저 루트 권한으로 스크립트를 실행해야합니까? init.d 스크립트를로드 할 때 프로세스가 루트에 의해 관리된다는 것을 알았습니다. 변경 사항에 대해 Sudo가 필요합니다.
두 번째로, 나는 훌륭하게 작동하는 몇 가지 주요 프로세스 (예 : 얇은)에 대해 RVM 래퍼를 만들었습니다. 그러나 Mongo 보석과 같이 사용하는 보석 중 일부는 묶음 기의 컨텍스트에서로드되지 않을 것입니다. (이것은 스크립트가로드되는 방식과 루트로로드되는 것으로 가정합니다.) 그래서 나는 강제로 Gem install Mongo (and bson)
init.d 로딩 된 스크립트를 bundler 컨텍스트에서로드 할 수있는 방법이 있습니까?
Ruby 배포 및 Linux 구성에 대해 아직 완전히 익숙하지 않아서 완전히 잘못했을 수도 있습니다. 나는 이런 식으로 해결 한
#!/bin/sh
### BEGIN INIT INFO
# Provides: god
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: God
### END INIT INFO
NAME=god
DESC=god
GOD_BIN=/home/username/.rvm/wrappers/Godrunner/god
GOD_CONFIG=/etc/god/god.conf
GOD_LOG=/var/log/god.log
GOD_PID=/var/run/god.pid
set -e
RETVAL=0
case "$1" in
start)
echo -n "Starting $DESC: "
$GOD_BIN load -c $GOD_CONFIG
exit 0
fi
RETVAL=0
case "$1" in
start)
echo -n "Starting $DESC: "
$GOD_BIN load -c $GOD_CONFIG
RETVAL=$?
echo "$NAME."
;;
status)
$GOD_BIN status
RETVAL=$?
;;
*)
echo "Usage: god {start|status}"
exit 1
;;
esac
exit $RETVAL
혹시 그 해결 했습니까? 또한 모니터링되는 서비스가 루트로 실행되는 문제에 직면하고 있습니다. – mottalrd