🦔

Cantaloupe: サービスとして実行する

2023/11/16に公開

概要

Cantaloupe Image Serverは以下のコマンドで実行できます。

java -Dcantaloupe.config=cantaloupe.properties -Xmx2g -jar cantaloupe-5.0.5.jar

しかしこの方法では、ssh接続が切れた場合など、Cantaloupeサーバが止まってしまいます。

そこで、サービスとして実行する方法を紹介します。

方法

  1. サービスファイルの作成: /etc/systemd/system/ディレクトリにサービスファイル(例えば、cantaloupe.service)をsudo権限で作成します。

    /etc/systemd/system/cantaloupe.service
    [Unit]
    Description=Cantaloupe Image Server
    
    [Service]
    User=ubuntu
    # 以下のパスは適宜修正してください
    WorkingDirectory=/home/ubuntu/cantaloupe-5.0.5
    ExecStart=/usr/bin/java -Dcantaloupe.config=cantaloupe.properties -Xmx2g -jar cantaloupe-5.0.5.jar
    SuccessExitStatus=143
    
    [Install]
    WantedBy=multi-user.target
    

    このファイルでは、ExecStartに実行するJavaコマンドを指定します。また、UserWorkingDirectoryは適切に設定する必要があります。

  2. サービスのリロード: 変更を適用するために、次のコマンドでsystemdをリロードします。

    sudo systemctl daemon-reload
    
  3. サービスの開始: 以下のコマンドでサービスを開始します。

    sudo systemctl start cantaloupe
    
  4. サービスの有効化: システム起動時にサービスが自動的に起動するようにするには、以下のコマンドを実行します。

    sudo systemctl enable cantaloupe
    
  5. サービスの状態確認: サービスの状態を確認するには、次のコマンドを使用します。

    sudo systemctl status cantaloupe
    

注意: この例では、Javaのパスやcantaloupeのインストールパスは適宜修正する必要があります。また、Userはcantaloupeを実行するユーザーに置き換えてください。サービスファイルの詳細設定については、systemdのドキュメントを参照してください。

まとめ

以下のようにサービスとして起動していることを確認できます。参考になりましたら幸いです。

sudo systemctl status cantaloupe
● cantaloupe.service - Cantaloupe Image Server
     Loaded: loaded (/etc/systemd/system/cantaloupe.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-11-16 03:52:24 UTC; 6min ago
   Main PID: 33204 (java)
      Tasks: 31 (limit: 4667)
     Memory: 116.2M
        CPU: 4.408s
     CGroup: /system.slice/cantaloupe.service
             └─33204 /usr/bin/java -Dcantaloupe.config=cantaloupe.properties -Xmx2g -jar cantaloupe-5.0.5.jar

Discussion