2016-09-27 65 views
1

我正在使用slate,它運行的網頁服務器的網址是bundle exec middleman server。我想和主管堅持下去,但我無法弄清楚。通常從目錄內運行命令就行得通。我試過的配置如下,我運行它時得到的錯誤也是如此。與主管運行'bundle exec middleman server'

如何正確運行這個守護程序?

主管.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 

UPDATE:每馬特的意見要求,我試圖運行福爾曼和出口到supervisord。我從中得到一個不同的錯誤。

輸出supervisord配置:

[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

我可能會建議使用工頭出口到上司,看看你有什麼不同。 https://ddollar.github.io/foreman/#EXPORT-FORMATS 另外,對於它的價值,當我搜索特定的錯誤時,它與RVM和環境變量有關。可能是另一個開始的地方。 – Matt

+0

@Matt我試了工頭,使用'工頭開始'完美地工作,但supervisord的輸出輸出不起作用。我會在一瞬間添加這個問題。 – vaindil

+0

所以問題是'bundle'腳本在開始時有'#!/ usr/bin/env ruby​​_executable_hooks'行。 'env'命令無法在同一個目錄中找到'ruby_executable_hooks'腳本。我可能需要''supervisor'配置中的一些'environment'設置。 –

回答

0

這裏是我做得到它的工作:

rvm wrapper ruby-version-here executable-hooks

例如:rvm wrapper ruby-2.3.1 executable-hooks

一旦我添加到包裝,然後添加包裝路徑到我的supervisor配置它開始工作。

您的命令可能是現在這個樣子:

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