2017-03-27 26 views
0

私はSpringブートアプリケーションを生成しました。達人で、Ubuntu 14.04でのinit.dサービスとしてのSpringブートアプリケーションのインストールLTS

sudo ln -s /var/licence/licence-0.0.1-SNAPSHOT.jar /etc/init.d/licence 

その後

/var/licence/licence-0.0.1-SNAPSHOT.jar 

にjarファイルを移動しかし、私は

[email protected]:/var/licence$ service licence start 
licence: unrecognized service 

を入力すると、これらは、これは私のポンポンである/etc/init.d/licence

lrwxrwxrwx 1 root root 46 Mar 27 18:17 licence -> /var/licence/licence-0.0.1-SNAPSHOT.jar 

の属性であります.xml:

....私は/etc/init.dの店舗にのみスクリプトファイルを知っているよう

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <executable>true</executable> 
       </configuration>    
      </plugin> 
     </plugins> 
    </build> 
... 
+0

リファレンスガイドの説明に従って実行可能なjarファイルを作成しましたか? –

+0

はい、リファレンスガイドの説明に従って実行可能なjarファイルを作成しました –

+0

どのブートバージョンを使用していて、ログを確認しましたか? [ここ](https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html#deployment-initd-service)に記載されていますか? –

答えて

1

にこの sudo service license start

サンプルscriptdetailのようなあなたのサービスを開始/停止することができます下にsystemdユニットファイル。 systemdはほとんどのLinuxディストリビューションで使用されているinitシステムであり、無料の管理、ログ機能、他のサービスの依存関係管理などのために、サービスの統合が容易(下記参照)と強力です。

[Unit] 
Description=License service by MyCorp 

[Service] 
ExecStart=/var/licence/licence-0.0.1-SNAPSHOT.jar 
User=myuser 
Restart=on-failure 

[Install] 
WantedBy=default.target 

して、これらのコマンドを実行します:のような内容でディレクトリ/etc/systemd/systemlicense.serviceを置くためにあなたのサービス、あなたの最初の必要性のための一例について

#>systemctl daemon-reload 
#>systemctl enable license 
#>systemctl start license 

注SpringBootができることjavaを明示的に呼び出す必要がないように、実行可能なJAR(つまり、シェルスクリプトで始まるJAR)を作成します。カスタマイズ方法については、spring.io documentationをご覧ください。

+0

'java -jar'の部分は必要ありません。' jar'は説明されているように実行可能(スクリプト)でなければなりません(https://docs.spring.io/spring-boot/docs/current/reference /html/deployment-install.html#deployment-systemd-service)。 –

+0

ありがとうございます。回答を更新しました – Raffaele

3

。 サービスを開始/停止する方法を記述するスクリプトファイルを置く必要があります。私は/etc/init.d/licenseとして保存サンプルスクリプトを書いて、あなたの代わりにあなたがより良い使用したい昔ながら/etc/init.dのこのresource

#!/bin/sh 
SERVICE_NAME=License 
PATH_TO_JAR=/var/licence/licence-0.0.1-SNAPSHOT.jar 
PID_PATH_NAME=/tmp/License.pid 

case $1 in 
    start) 
     echo "Starting $SERVICE_NAME ..." 
     if [ ! -f $PID_PATH_NAME ]; then 
      nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null & 
         echo $! > $PID_PATH_NAME 
      echo "$SERVICE_NAME started ..." 
     else 
      echo "$SERVICE_NAME is already running ..." 
     fi 
    ;; 
    stop) 
     if [ -f $PID_PATH_NAME ]; then 
      PID=$(cat $PID_PATH_NAME); 
      echo "$SERVICE_NAME stoping ..." 
      kill $PID; 
      echo "$SERVICE_NAME stopped ..." 
      rm $PID_PATH_NAME 
     else 
      echo "$SERVICE_NAME is not running ..." 
     fi 
    ;; 
    restart) 
     if [ -f $PID_PATH_NAME ]; then 
      PID=$(cat $PID_PATH_NAME); 
      echo "$SERVICE_NAME stopping ..."; 
      kill $PID; 
      echo "$SERVICE_NAME stopped ..."; 
      rm $PID_PATH_NAME 
      echo "$SERVICE_NAME starting ..." 
      nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null & 
         echo $! > $PID_PATH_NAME 
      echo "$SERVICE_NAME started ..." 
     else 
      echo "$SERVICE_NAME is not running ..." 
     fi 
    ;; 
esac 
+0

実行可能なSpringブートjarは、[here](https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html#deployment-initd-service)で説明されているスクリプトです。 –