2

起動時にリングサーバーを実行しようとしています。私はubuntu 12.04を使用していますが、他の人がどのようにアプリを展開したのか疑問に思っていました.

4

2 に答える 2

3

init または upstart スクリプトを生成する必要があります。leiningen wikiは、スクリプトの生成とインストールを自動化するlein-init-scriptについて言及しています。

于 2013-01-16T07:38:38.117 に答える
2

新興のクックブックはかなり難解でしたが、思ったより簡単でした。upstart スクリプトは、実際には非常に簡単に記述できます。

これを機能させるために私が取った手順は次のとおりです。

(1) project.clj に、:main実行するクラスを指すキーワードを入れます。例えば:

(defproject lapis "0.1.0-SNAPSHOT"
  :依存関係 ...
  ... 残りのファイル ...
  :main lapis.app)

(2) 次に、クラスで:gen-class、名前空間と-main関数にディレクティブを追加します。

(ns lapis.app
  (:genクラス)
  (:使用する ....)
  (:必要とする...))

(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

.jar(4)ファイルが実行されることを確認します。

$ 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 に答える