mongrel启动问题的解决方案
- mongrel_rails start -C mongrel.config
- —
- :config_script:
- :environment: development
- :pid_file: log/mongrel.pid
- :num_processors: 1024
- :docroot: public
- :timeout: 0
- :host: 0.0.0.0
- :mime_map:
- :port: 3000
- :daemon: false
- :cwd: /home/linux/projects/mongrel/testapp
- :includes:
- - mongrel
- :debug: false
- :log_file: log/mongrel.log
但是有个问题,如果我不在app的根目录下运行呢?系统会给出我们信息:
- !!! Path to log file not valid: log/mongrel.log
- mongrel::start reported an error. Use mongrel_rails mongrel::start -h to get help.
也许上述的方法能解决问题,但是我相信仍然有一种情况:即使改为绝对路径,还是出现同样的错误.
如果发生上述的错误应该怎么办?
不幸的是,上述的问题我已经碰见过,很长时间不得要领.文档看破皮了,还是不能运行.不得已,打开mongrels的源代码看看.最后发现需要指定工作目录,因为工作目录是在log之前验证的.
摘录一段代码:
- module Mongrel
- class Start < GemPlugin::Plugin "/commands"
- include Mongrel::Command::Base
- def configure
- options [
- ["-e", "–environment ENV", "Rails environment to run as", :@environment, ENV[’RAILS_ENV’] || "development"],
- ["-d", "–daemonize", "Run daemonized in the background", :@daemon, false],
- [’-p’, ’–port PORT’, "Which port to bind to", :@port, 3000],
- [’-a’, ’–address ADDR’, "Address to bind to", :@address, "0.0.0.0"],
- [’-l’, ’–log FILE’, "Where to write log messages", :@log_file, "log/mongrel.log"],
- [’-P’, ’–pid FILE’, "Where to write the PID", :@pid_file, "log/mongrel.pid"],
- [’-n’, ’–num-procs INT’, "Number of processors active before clients denied", :@num_procs, 1024],
- [’-t’, ’–timeout TIME’, "Timeout all requests after 100th seconds time", :@timeout, 0],
- [’-m’, ’–mime PATH’, "A YAML file that lists additional MIME types", :@mime_map, nil],
- [’-c’, ’–chdir PATH’, "Change to dir before starting (will be expanded)", :@cwd, Dir.pwd],
- [’-r’, ’–root PATH’, "Set the document root (default ’public’)", :@docroot, "public"],
- [’-B’, ’–debug’, "Enable debugging mode", :@debug, false],
- [’-C’, ’–config PATH’, "Use a config file", :@config_file, nil],
- [’-S’, ’–script PATH’, "Load the given file as an extra config script", :@config_script, nil],
- [’-G’, ’–generate PATH’, "Generate a config file for use with -C", :@generate, nil],
- [”, ’–user USER’, "User to run as", :@user, nil],
- [”, ’–group GROUP’, "Group to run as", :@group, nil],
- [”, ’–prefix PATH’, "URL prefix for Rails app", :@prefix, nil]
- ]
- end
- def validate
- @cwd = File.expand_path(@cwd)
- valid_dir? @cwd, "Invalid path to change to during daemon mode: #@cwd"
- # Change there to start, then we’ll have to come back after daemonize
- Dir.chdir(@cwd)
- valid?(@prefix[0].chr == "/" && @prefix[-1].chr != "/", "Prefix must begin with / and not end in /") if @prefix
- valid_dir? File.dirname(@log_file), "Path to log file not valid: #@log_file"
- valid_dir? File.dirname(@pid_file), "Path to pid file not valid: #@pid_file"
- valid_dir? @docroot, "Path to docroot not valid: #@docroot"
- valid_exists? @mime_map, "MIME mapping file does not exist: #@mime_map" if @mime_map
- valid_exists? @config_file, "Config file not there: #@config_file" if @config_file
- valid_dir? File.dirname(@generate), "Problem accessing directory to #@generate" if @generate
- valid_user? @user if @user
- valid_group? @group if @group
- return @valid
- end
- def run
- # Config file settings will override command line settings
- settings = { :host => @address, :port => @port, :cwd => @cwd,
- :log_file => @log_file, :pid_file => @pid_file, :environment => @environment,
- :docroot => @docroot, :mime_map => @mime_map, :daemon => @daemon,
- :debug => @debug, :includes => ["mongrel"], :config_script => @config_script,
- :num_processors => @num_procs, :timeout => @timeout,
- :user => @user, :group => @group, :prefix => @prefix, :config_file => @config_file
- }
- #……
- if @config_file
- settings.merge! YAML.load_file(@config_file)
- STDERR.puts "** Loading settings from #{@config_file} (they override command line)." unless settings[:daemon]
- end
- config = Mongrel::Rails::RailsConfigurator.new(settings) do
- if defaults[:daemon]
- if File.exist? defaults[:pid_file]
- log "!!! PID file #{defaults[:pid_file]} already exists. Mongrel could be running already. Check your #{defaults[:log_file]} for errors."
- log "!!! Exiting with error. You must stop mongrel and clear the .pid before I’ll attempt a start."
- exit 1
- end
- daemonize
- log "Daemonized, any open files are closed. Look at #{defaults[:pid_file]} and #{defaults[:log_file]} for info."
- log "Settings loaded from #{@config_file} (they override command line)." if @config_file
- end
那么如何解决,可以这样:
- mongrel_rails start -c youapp/path/to -C mongrel.config
mongrel启动问题的解决方案相关推荐
- 防火墙启动被拒绝解决方案
防火墙启动被拒绝解决方案 在工作中,我们会遇到很多问题,不管是新问题,还是老问题,我都喜欢记录下来,以备不时之需,本文分为以下几个部分: 1,问题描述 2,问题分析 3,解决方案 4,问题总结 一 问 ...
- TOMCAT启动汉字乱码解决方案
TOMCAT启动汉字乱码解决方案 参考文章: (1)TOMCAT启动汉字乱码解决方案 (2)https://www.cnblogs.com/fujingtao5470/p/12290350.html ...
- 开机按F1才能进入(启动)系统的解决方案
1.BIOS ROM check sum error,System halted (BIOS信息进行总和校验时发现错误,系统锁定) 解决方案:这个错误是一般人不会遇到的,这种信息多半是对主板BIOS刷 ...
- Mysql启动报错解决方案:Failed to open log (file ‘./mysql-bin.000901‘, errno 2)
Mysql启动报错解决方案:Failed to open log (file './mysql-bin.000901', errno 2) 参考文章: (1)Mysql启动报错解决方案:Failed ...
- CentOS 7下mysqld服务启动失败终极解决方案
CentOS 7下mysqld服务启动失败终极解决方案 参考文章: (1)CentOS 7下mysqld服务启动失败终极解决方案 (2)https://www.cnblogs.com/waycx/p/ ...
- Linux MySQL 常见无法启动或启动异常的解决方案
Linux MySQL 常见无法启动或启动异常的解决方案 参考文章: (1)Linux MySQL 常见无法启动或启动异常的解决方案 (2)https://www.cnblogs.com/youjia ...
- Microsoft Office 2008 for Mac Service Pack 1 更新后无法启动程序问题解决方案
Microsoft Office 2008 for Mac Service Pack 1 更新后无法启动程序问题解决方案 1. 删除文件(不是根目录下的,而是你的用户名下的目录中...) ~/Libr ...
- linux 进程无法启动,linux6.*无法正常启动has进程解决方案
1. 数据库安装成功之后:发现ohasd进程存在异常: [root@oracle234 ~]# su - grid [grid@oracle234 ~]$ ps -ef| grep ohasd gri ...
- Win10系统无法启动的最终解决方案
电脑操作失误导致系统无法启动.分享一下Win10系统无法启动的最终解决方案. 操作步骤如下: 1.首先需要准备一个Windows10安装盘,只需将Windows10微软原版镜像写入U盘即可.当然如果你 ...
最新文章
- jquery仿邮箱文本输入框自动加载邮箱后缀
- 目标检测中的分类和定位冲突问题
- redis的学习使用,第二章
- RedHat6.5 搭建glusterfs全过程
- Scala集合体系:可变集合和不可变集合
- python 数据驱动接口自动化框架_python接口自动化测试 - 数据驱动DDT模块的简单使用...
- Android Jenkins自动化构建之路
- 安装meme_新的Meme订单:通过简单的浏览器缓存更改游戏
- 在系统启动时至少有一个服务或驱动程序产生错误_Cassandra Java驱动程序
- 【iOS报错】“Internal error. Please file a bug at bugreport.apple.com and attach /var/folders/v5/......”
- 运行在MAMP Pro上的PhP和Mysql更改版本教程
- DeepLearning tutorial(6)易用的深度学习框架Keras简介
- 国产开源数据库建模工具
- 苦心研究两周,我特么终于搞懂啥是「元宇宙」了
- 记录java使用EasyExcel进行单元格内换行操作
- BT服务器的搭建(tracker-P2P服务器架设)(转)
- 图文解说S参数(进阶篇)
- 自建DHCP TFTP服务 用PXE启动实现无人值守安装Centos6
- Facebook背后的人工智能
- java八进制转换器,Java将八进制转换为十进制