在Ubuntu 14.04上,我为puma设置了这个简单的upstart脚本:
/etc/init/puma.conf
start on (local-filesystems and net-device-up IFACE=lo and runlevel [2345])
stop on (runlevel [!2345])
setuid deploy
setgid deploy
respawn
respawn limit 3 30
chdir /home/deploy/apps/vp_suite_staging/current
exec bundle exec puma -C /home/deploy/apps/vp_suite_staging/shared/config/puma.rb
我已经对路径进行了三次检查,所有这些都是正确的。这个脚本有效,直到我重新启动我的服务器(DigitalOcean droplet)。现在当我输入
start puma
我的“未能启动作业”和我的系统日志中的以下行:
init: Failed to spawn puma main process: unable to execute: No such file or directory
在/ var / log / upstart中没有为进程创建日志文件(puma.log)。 我花了两天的时间在谷歌上搜索我能想到的一切,但还没有提出解决方案。我不知道这个错误行正在讨论什么文件或目录,但显然它不是puma.conf中的那个,因为它似乎没有达到实际执行它的程度。
有一点不同的是,puma.conf是项目共享目录中文件的符号链接(我使用Capistrano进行部署)。
有谁知道这里可能会发生什么,或者我应该如何解决这个问题?
答案 0 :(得分:1)
我还没有使用过美洲狮,但我发生了类似的事情,原因是文件丢失了。在您的情况下,看起来它可能试图在错误的位置找到exec bundle exec puma -C /home/deploy/apps/vp_suite_staging/shared/config/puma.rb
,因此它甚至从不执行(=没有日志)。我会尝试替换:
exec bundle exec `which puma` -C /home/deploy/apps/vp_suite_staging/shared/config/puma.rb
^ this will yield the absolute path to puma binary
有了这个:
Math.max