我有一个RubyOnRails 3项目,我正在使用rvm.我想从sysvinit脚本切换到supervisord.sysvinit脚本只能在出现错误的情况下启动软件,它会被$ something杀死并重新启动.主要是我.
在项目文件夹中有一个.ruby-version和一个.ruby-gemset文件,以便自动加载正确的ruby版本和gemset.然后应用程序是一个shell脚本的startet,如下所示:
#!/bin/bash
RAILS_ENV="production" rails server -d
Run Code Online (Sandbox Code Playgroud)
我的init脚本看起来像这样,除了重新启动和停止之外还有效:
#!/bin/sh
### BEGIN INIT INFO
# Provides: myapp
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts myapp
# Description: starts the myapp software
### END INIT INFO
USER=myuser
PATH=$PATH
DAEMON=go.sh
DAEMON_OPTS=""
NAME=myapp
DESC="myapp for $USER"
PID=/home/$USER/myapp/tmp/pids/server.pid
case "$1" in
start)
CD_TO_APP_DIR="cd /home/$USER/myapp"
START_DAEMON_PROCESS="$DAEMON $DAEMON_OPTS"
echo -n "Starting $DESC: …Run Code Online (Sandbox Code Playgroud)