谁应该拥有神的过程?

我有一个在Ubuntu上运行的堆栈,由一个在Sinatra和GrapeAPI中编写的Rack应用程序组成。 应用程序堆栈包括Redis,Postgres,Nginx和独angular兽。 我想用上帝来处理过程监控。

目前部署是通过git在部署用户下进行的。 这个部署用户不是一个sudoer。 我的问题:谁应该拥有神的过程? 作为sudoer或部署用户运行该进程是最好的吗?

以部署用户身份运行将加载允许独angular兽启动的rbenv,但部署用户不具有sudo访问权限,因此将无法运行init.d脚本。

另一方面,当我作为一个不同的用户运行时,部署用户god不能访问由rbenv提供的bundle exec,因为如果他们closures,不能启动独angular兽进程。

上帝的过程应该由新贵的脚本控制,从而以sudo用户的身份运行它。 这是由binstubs成为可能。 binstub是由gem安装的可执行程序的垫片。 Binstubs由bundler提供。 它们允许bin文件从系统的任何地方运行。 在你的新贵脚本中添加rbenvpath来达到这个目的是无稽之谈。

export PATH=/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:$PATH eval "$(rbenv init -)" export BUNDLE_GEMFILE=$APPLICATION_ROOT/Gemfile 

在这之后,任何对binstubs的直接调用都会加载你的bundle并正确执行。 有了这种模式,可以使用新贵运行独angular兽和resque。 这使得你的整个堆栈可执行的新贵和你的神的configurationchinch,因为你所要做的就是调用你的新贵脚本。 HTH。