让你的mongrel_cluster干净重启

你熟悉下面的错误提示吗?

** !!! PID file log/mongrel.pid already exists.  Mongrel could be running already.  Check your log/mongrel.log for errors.
** !!! Exiting with error.  You must stop mongrel and clear the .pid before I'll attempt a start.

 当服务器启动失败时,一般会看到它。然后,你会到服务器上将mongrel的进程文件删掉,最后再启动服务。

其实,可以再简单一点。现在,假设你已经正确安装了mongrel_cluster,配置文件放在/etc/mongrel_cluster而且mongrel_cluster脚本已经从/usr/lib/ruby/gems/1.8/gems/mongrel_cluster-*/resources复制到了/etc/init.d目录,你可以编辑/etc/init.d/mongrel_cluster文件。主要有两个地方需要修改:

首先将

start)
  # Create pid directory
  mkdir -p $PID_DIR
  chown $USER:$USER $PID_DIR

  mongrel_cluster_ctl start -c $CONF_DIR
  RETVAL=$?
;;

 改为

start)
  # Create pid directory
  mkdir -p $PID_DIR
  chown $USER:$USER $PID_DIR

  mongrel_cluster_ctl start --clean -c $CONF_DIR
  RETVAL=$?
;;

 然后,将

restart)
  mongrel_cluster_ctl restart -c $CONF_DIR
  RETVAL=$?
;;

 改为

restart)
  mongrel_cluster_ctl restart --clean -c $CONF_DIR
  RETVAL=$?
;;

 这样就可以了。
主要是添加了--clean这个选项,mongrel_cluster脚本首先会检查mongrel_rails进程是否存在,如果存在进程文件,则首先将它们删除。

你可能感兴趣的:(C++,c,脚本,Ruby,Rails)