Ubuntu 14.04 puma upstart失败了“init:无法生成puma主进程:无法执行:没有这样的文件或目录”

时间:2016-10-27 17:41:35

标签: ubuntu puma upstart

在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进行部署)。

有谁知道这里可能会发生什么,或者我应该如何解决这个问题?

1 个答案:

答案 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