我有一个脚本,可以在启动时为我的 rails 应用启动一个乘客独立服务器。当我从命令行运行此脚本时,它会按预期工作。但是,当它由rc.local
或运行时,crontab
它会产生这错误。我在任何日志文件中都找不到任何关于此错误的记录。这是怎么回事?我该如何修复?
一些规格:
Digital Ocean Droplet
Ubuntu 15.10:32位
Passenger 版本:5.0.27
Rails 版本:4.2.6
Ruby 版本:2.3.0
再次强调,这是一个独立的服务器,不是反向代理。我使用 iptables 将端口 80 重定向到乘客所在的端口(该端口高于 3000)。
任何帮助将不胜感激!
答案1
我已经找到了答案,我将把这个问题留给有同样问题的人回答。
什么地方出了错
当我打开我的数字海洋控制台以便看到启动时,我看到它正在运行我的bootUp.sh
脚本并尝试将pid
文件存储在//passenger.PORT.pid
注意两个斜线。我认为这很奇怪...作为新手,我不知道脚本/path/to/my/script.sh
不会在它所在的目录中执行。所以当我从根目录运行脚本时,它产生了类似的错误。
我如何修复它
事实证明,我所要做的就是在脚本中的命令cd /path/to/script/dir
上方添加一行。上面提到的只是将脚本的工作目录放在它应该在的位置,因为它默认在其他地方。passenger start
cd
我希望这能帮助那些不熟悉这方面的人,因为我花了很长时间才弄清楚这个简单的错误