与主管

时间:2016-09-27 17:23:28

标签: ruby ubuntu supervisord

我正在使用slate,它运行带有bundle exec middleman server的网络服务器。我想和主管一起坚持这个,但我无法弄明白。通常从目录中运行命令可以正常工作。我尝试过的配置如下,运行时遇到的错误也是如此。

如何正确运行此守护程序?

supervisor .conf文件:

[program:slate]
directory=/home/vaindil/slate
command=/home/vaindil/.rvm/gems/ruby-2.3.1/bin/bundle exec middleman server
autostart=true
autorestart=true
stderr_logfile=/var/log/slate.err.log
stdout_logfile=/var/log/slate.out.log

错误:

/usr/bin/env: ruby_executable_hooks: No such file or directory

更新:根据评论中的Matt请求,我尝试运行Foreman并导出到supervisord。我从中得到了一个不同的错误。

输出supervisord config:

[program:app-web-1]
command=bundle exec middleman server
autostart=true
autorestart=true
stopsignal=QUIT
stdout_logfile=/var/log/web-1.log
stderr_logfile=/var/log/web-1.error.log
directory=/home/vaindil/slate
environment=PORT="4567"

[group:app]
programs=app-web-1

错误:

Warning: the running version of Bundler is older than /
the version that created the lockfile. We suggest you /
upgrade to the latest version of Bundler by running `gem install bundler`.
bundler: command not found: middleman
Install missing gem executables with `bundle install`

1 个答案:

答案 0 :(得分:0)

以下是我为实现目标所做的工作:

rvm wrapper ruby-version-here executable-hooks

ex:rvm wrapper ruby-2.3.1 executable-hooks

一旦我将它添加到包装器中,然后将包装器路径添加到我的supervisor配置中,它就开始工作了。

您的命令现在可能是这样的:

command=/home/vaindil/.rvm/wrappers/ruby-2.3.1/bundle exec middleman server