在stdout和stderr的后台启动sinatra应用程序redirect(追加)到一个文件

我有一个使用ruby app.rb在本地机器上运行的sinatra应用程序。

当通过ssh在远程机器上部署它时,我如何在后台运行它,并将stdout和stderrredirect到日志文件。 在重新启动时,我想保留以前的日志,以便将更新的消息追加到现有的日志文件中,而不是截断它。

运行我的webapp作为守护进程的推荐方式是什么?

我已经尝试了nohup ruby app.rb & ,但似乎缺lessstderr,并且在某些情况下,日志语句似乎无序。

在bash下,尝试:

 nohup ruby app.rb >> /log/file 2>&1 & 

screen -L -dmS somename ruby app.rb

这将启动一个名为“somename”的屏幕进程,程序的所有输出都logging到当前工作目录的screenlog.0中。

如果您因为某种原因想要取回应用程序的控制台,则可以执行screen -r somename