我只是想在启动时运行一个环形服务器。我正在使用 ubuntu 12.04 并且想知道其他人如何部署他们的应用程序。
问问题
472 次
2 回答
3
您需要生成 init 或 upstart 脚本。leiningen wiki提到了自动生成和安装脚本的lein-init-script 。
于 2013-01-16T07:38:38.117 回答
2
新贵的食谱非常令人生畏……但比我想象的要容易。新贵的脚本实际上写起来很简单。
以下是我为使其工作而采取的步骤:
(1) 在你的 project.clj 中,放一个:main
指向要运行的类的关键字。例如:
(defproject 青金石“0.1.0-SNAPSHOT” : 依赖... ...文件的其余部分... :main lapis.app)
(2) 然后在类中,添加一个:gen-class
指令到命名空间以及一个-main
函数:
(ns lapis.app (:gen-class) (:采用 ....) (:要求...)) (defn -main [&args] ……)
(3)使用lein uberjar in生成jar文件:
$ lein uberjar
> Including fs-1.3.2.jar
> Including jetty-io-7.6.1.v20120215.jar
> ........
> Including jetty-continuation-7.6.1.v20120215.jar
> Created /home/example/lapis/target/lapis-0.1.0-SNAPSHOT-standalone.jar
(4) 确保.jar
文件运行:
$ java -jar target/lapis-0.1.0-SNAPSHOT-standalone.jar
并在您的项目目录之外对其进行测试,因为您的resources
目录中的文件可能存在您可能不知道的问题:
$ cd ~
$ java -jar /home/example/lapis/target/lapis-0.1.0-SNAPSHOT-standalone.jar
(5) 如果一切正常,upstart 文件放在 /etc/init/.conf 中。
我的脚本是 5 行:
$ cat /etc/init/lapis.conf
> -------------
> start on started
> script
> exec /usr/bin/java -jar /home/example/lapis/target/lapis-0.1.0-SNAPSHOT-standalone.jar >> /var/log/lapis/lapis.log 2>&1
> end script
> --------------
(6) 测试看服务是否有效:
$ sudo start lapis
> lapis start/running, process 2543
$ sudo stop lapis
> lapis stop/waiting
于 2013-01-22T03:59:48.087 回答