Clojure 我如何使用Ubuntu';管理戒指应用程序的服务命令?

Clojure 我如何使用Ubuntu';管理戒指应用程序的服务命令?,clojure,jetty,ring,Clojure,Jetty,Ring,我正在使用一个Ubuntu VPS来托管几个Ring web应用程序。我为每个屏幕都有一个单独的GNU屏幕窗口,我分别使用lein run和^C启动和停止它们。这是可行的,但感觉很业余,如果出现任何问题,这些服务将不会自动重新启动 我想设置一些东西,这样我就可以使用Ubuntu的服务命令启动和停止我的应用程序(我已经使用它来启动和停止nginx)。是否有某种快捷方式可以让这些应用程序使用服务命令?例如,是否有一些Leiningen或Ring友好的模板,我可以将应用程序的路径插入其中?如果做不到这

我正在使用一个Ubuntu VPS来托管几个Ring web应用程序。我为每个屏幕都有一个单独的GNU屏幕窗口,我分别使用
lein run
^C
启动和停止它们。这是可行的,但感觉很业余,如果出现任何问题,这些服务将不会自动重新启动


我想设置一些东西,这样我就可以使用Ubuntu的
服务
命令启动和停止我的应用程序(我已经使用它来启动和停止nginx)。是否有某种快捷方式可以让这些应用程序使用
服务
命令?例如,是否有一些Leiningen或Ring友好的模板,我可以将应用程序的路径插入其中?如果做不到这一点,那么编写我自己的
服务
脚本以与Jetty集成的最佳实践是什么?

这取决于您是希望服务直接从项目目录运行,还是希望完成创建和安装构建工件的中间步骤

当然,在开发过程中,从项目目录中使用
lein run
更方便。为了重复性,我建议对生产系统使用第二种方法

一般的方法是使用
leinuberjar
任务创建一个独立的JAR文件。从这里开始,创建一个脚本非常简单(尽管有些繁琐),您可以直接通过
java
或使用
etc/init.d
运行JAR文件

看起来有一个Leiningen插件()可以自动生成服务脚本,尽管我没有任何经验。你可能想看看