我正在使用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`
答案 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